Excel copier coller une sélection de cellules un x nombre de fois
Résolu/Fermé
suli1870
Messages postés
4
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
4 mai 2019
-
28 mars 2019 à 10:24
suli1870 Messages postés 4 Date d'inscription jeudi 28 mars 2019 Statut Membre Dernière intervention 4 mai 2019 - 4 mai 2019 à 12:24
suli1870 Messages postés 4 Date d'inscription jeudi 28 mars 2019 Statut Membre Dernière intervention 4 mai 2019 - 4 mai 2019 à 12:24
A voir également:
- Excel copier coller une sélection de cellules un x nombre de fois
- Formule excel pour additionner plusieurs cellules - Guide
- Liste déroulante excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Copier coller pdf - Guide
- Copier une vidéo youtube - Guide
4 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
28 mars 2019 à 15:15
28 mars 2019 à 15:15
Bonjour Suli, bonjour le forum,
Essaie comme ça :
Essaie comme ça :
Sub Macro1() Dim NF As Integer 'déclare la variable NF (Nombre de Fois) Dim DEST As Range 'déclare la variable DEST (cellule de DESTination) Dim I As Integer 'déclare la variable I (Incrément) NF = Range("A25").Value 'définit le nombre de fois NF If NF < 1 Then Exit Sub 'si NF est inférieure à 1, sort de la procédure For I = 1 To NF 'boucle de 1 à NF 'définit la cellule de destination DEST (D1 si D1 est vide, sinon la première cellule vi de la colonne D) If Range("D1").Value = "" Then Set DEST = Range("D1") Else Set DEST = Cells(Application.Rows.Count, "D").End(xlUp).Offset(1, 0) Range("A1:C24").Copy DEST 'copie la plage A1:C24 et la colle dans DEST Next I 'prochaine fois de la boucle End Sub
suli1870
Messages postés
4
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
4 mai 2019
Modifié le 29 mars 2019 à 23:21
Modifié le 29 mars 2019 à 23:21
Bonsoir ThauTheme,
Merci pour ce bout de code. Ca marche à 80%. Il sélectionne la bonne zone à copier ( A1:C24) et recolle cette sélection en (D1). Cependant si la valeur ''NF'' inscrite en (A25) est supérieure à zéro, ça ne colle pas la zone sélectionée à répétition selon la valeur NF (A25).
Si cette valeur NF avait été de 3 alors il aurait du coller la zone sélectionnée en D1+ G1 + J1
Si cette valeur NF avait été de 5 alors il aurait du coller la zone sélectionnée en D1+ G1 + J1+M1+P1
Actuellement hélas la macro ne recopie qu'une seule fois.
Merci énormément pour votre éclairage.
Merci pour ce bout de code. Ca marche à 80%. Il sélectionne la bonne zone à copier ( A1:C24) et recolle cette sélection en (D1). Cependant si la valeur ''NF'' inscrite en (A25) est supérieure à zéro, ça ne colle pas la zone sélectionée à répétition selon la valeur NF (A25).
Si cette valeur NF avait été de 3 alors il aurait du coller la zone sélectionnée en D1+ G1 + J1
Si cette valeur NF avait été de 5 alors il aurait du coller la zone sélectionnée en D1+ G1 + J1+M1+P1
Actuellement hélas la macro ne recopie qu'une seule fois.
Merci énormément pour votre éclairage.
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
1 avril 2019 à 09:01
1 avril 2019 à 09:01
Bonjour Suli, bonjour le forum,
Le premier code fonctionnait parfaitement mais copiait les blocs les un en-dessous des autres. Le code corrigé pour qu'ils soient copiés les un à coté des autres :
Le premier code fonctionnait parfaitement mais copiait les blocs les un en-dessous des autres. Le code corrigé pour qu'ils soient copiés les un à coté des autres :
Sub Macro1() Dim NF As Integer 'déclare la variable NF (Nombre de Fois) Dim DEST As Range 'déclare la variable DEST (cellule de DESTination) Dim I As Integer 'déclare la variable I (Incrément) NF = Range("A25").Value 'définit le nombre de fois NF If NF < 1 Then Exit Sub 'si NF est inférieure à 1, sort de la procédure For I = 1 To NF 'boucle de 1 à NF 'définit la cellule de destination DEST (D1 si D1 est vide, sinon la première cellule vi de la colonne D) If Range("D1").Value = "" Then Set DEST = Range("D1") Else Set DEST = Cells(1, Application.Columns.Count).End(xlToLeft).Offset(0, 1) Range("A1:C24").Copy DEST 'copie la plage A1:C24 et la colle dans DEST Next I 'prochaine fois de la boucle End Sub
suli1870
Messages postés
4
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
4 mai 2019
4 mai 2019 à 12:24
4 mai 2019 à 12:24
Merci beaucoup pour ton aide. Je vais classer cette discussion.