Excel copier coller une sélection de cellules un x nombre de fois
Résolu
suli1870
Messages postés
4
Statut
Membre
-
suli1870 Messages postés 4 Statut Membre -
suli1870 Messages postés 4 Statut Membre -
Bonjour a tous, je recherche depuis quelques temps une réponse adaptée à mon problème mais je reste sans résultats…
J’aurais besoin de copier – coller la sélection de certaines cellules d’une feuille autant de fois que la valeur indiquée dans une cellule à part. Le tout est présent dans la même feuille.
Autrement dit : Ma sélection s’effectue de la cellule A1 à la cellule C24 une fois sélectionnées, je dois les recopier dans la cellule D1 autant de fois qu’indiqué dans la cellule A25
J’imagine que ce thème a été débattu et traité x fois mais malgré mes essais je n’arrive pas à réaliser une macro qui résolve mon problème.
Pourriez-vous m’aider ? Merci à tous.
J’aurais besoin de copier – coller la sélection de certaines cellules d’une feuille autant de fois que la valeur indiquée dans une cellule à part. Le tout est présent dans la même feuille.
Autrement dit : Ma sélection s’effectue de la cellule A1 à la cellule C24 une fois sélectionnées, je dois les recopier dans la cellule D1 autant de fois qu’indiqué dans la cellule A25
J’imagine que ce thème a été débattu et traité x fois mais malgré mes essais je n’arrive pas à réaliser une macro qui résolve mon problème.
Pourriez-vous m’aider ? Merci à tous.
Configuration: Windows / Firefox 66.0
A voir également:
- Excel copier coller une sélection de cellules un x nombre de fois
- Nombre de jours entre deux dates excel - Guide
- Retrouver un copier-coller android - Guide
- Site x - Guide
- Liste déroulante excel - Guide
- Copier-coller - Accueil - Informatique
4 réponses
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
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.
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