Code copier coller une plage selon un nombre de fois défini

Bonjour à tous,

je fait une fiche exel récap et j'ai besoin d'un code VBA qui automatise le copier coller une plage selon le nombre défini dans une autre cellule :

Exemple :

A2 nous sélectionnons 3 (une liste déroulante de chiffre)

la plage de cellule B2:B6 doit être copié collé à partir de C2:C6 3 fois (cellule A2)

merci

J'ai réussi à faire le code pour étendre la plage selon le nombre indiqué dans A2 mais je n'arrive pas à mettre en forme le code copier / coller et à l'automatiser dès que A2 est choisi.

Bonjour mymyvba, bonjour le forum,

C'est pas clair !... Copier n fois mais en ligne ou en colonne ?!...

Tu dis à partir de C2:C6 donc, soit tu colles en ligne :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Byte
Dim DEST As Range

If Target.Address <> "$A$2" Then Exit Sub
If Target.Value = "" Then Exit Sub
For I = 1 To Target.Value
    Set DEST = Cells(Application.Rows.Count, "C").End(xlUp).Offset(1, 0)
    Range("B2:B6").Copy DEST
Next I
End Sub

ou bien en colonne :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Byte
Dim DEST As Range

If Target.Address <> "$A$2" Then Exit Sub
If Target.Value = "" Then Exit Sub
For I = 1 To Target.Value
    Set DEST = Cells(2, Application.Columns.Count).End(xlToLeft).Offset(0, 1)
    Range("B2:B6").Copy DEST
Next I
End Sub

Bonjour ThauThème,

Merci bcp pour tes codes, j'ai essayé de retranscrire dans mon fichier mais cela ne fonctionne pas.

Effectivement, pour être plus précise, j'ai besoin de copier une plage en colonne et de la coller X fois à côté de la plage sélectionner.

Merci encore de ton aide,

Salut le fil...

A améliorer...

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim MyRange As Range, i As Long
    If Target.Address <> "$A$1" Then Exit Sub
    Set MyRange = Range("B2:B6")

    For i = 1 To Range("A2").Value
        MyRange.Offset(, i) = MyRange.Value
    Next

End Sub
Rechercher des sujets similaires à "code copier coller plage nombre fois defini"