Copier plage données plusieurs fois l'une en dessous de l'autre

Fermé
yumi_b17 Messages postés 36 Date d'inscription samedi 5 octobre 2013 Statut Membre Dernière intervention 24 mai 2020 - Modifié par yumi_b17 le 18/01/2015 à 17:37
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 18 janv. 2015 à 18:28
Bonjour,

J'ai un groupe de 5 lignes, je souhaiterais pouvoir copier ce groupe de ligne 100 fois, à chaque fois l'une en dessous de l'autre (voir fichier excel joint), est-ce possible ?
ps: j'ai téléchargé ASAP utilities, si nécessaire...


Merci :)



https://www.cjoint.com/c/EAsrTEZMWlQ
A voir également:

3 réponses

Hillian Fellers Messages postés 79 Date d'inscription mardi 22 octobre 2013 Statut Membre Dernière intervention 24 mai 2022 12
18 janv. 2015 à 17:42
Si c'est juste ces 100 fois pour cet exemple-là, le plus rapide est de le faire à la main: copier 4 fois, prendre les 5 exemplaires et les copier 4 fois, ça fait 25, prendre les 25 et terminer. Cela prendra moins de temps que de faire une macro.

Si la question est récurrente, alors il faudra passer à l'écriture d'une macro.
0
yumi_b17 Messages postés 36 Date d'inscription samedi 5 octobre 2013 Statut Membre Dernière intervention 24 mai 2020
18 janv. 2015 à 18:00
merci ;) pourriez-vous m'expliquer comment on fait pour la macro ?


En fait le fichier que j'ai joint était juste un exemple, dans la réalité je dois déplacer un groupe de 20 lignes, du coup je perd beaucoup de temps à descendre dans la feuille...
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
18 janv. 2015 à 18:28
Bonjour,

une proposition.
Sélectionner la plage à recopier (peut avoir plusieurs colonnes) et lancer la macro.
Sub copier()
Dim nb As Long, nblig As Long, c As Range, i As Long
nb = CLng(InputBox("Combien de fois ?", "Copier-coller bloc"))
nblig = Selection.Rows.Count
Set c = Selection.Range("A1")
Selection.Copy
Application.ScreenUpdating = False
For i = 1 To nb
c.Offset(nblig * i).Resize(Selection.Rows.Count, Selection.Columns.Count) = Selection.Value
Next i
Application.CutCopyMode = False
End Sub

https://www.cjoint.com/c/EAssLJcT0bd
eric
0