Dupliquer ligne feuille 2 X fois selon cellule en feuille 1

Bonjour,

Je suis débutante dans VBA;

Je cherche à dupliquer la ligne A2 à L2 de la Feuille 2 "Data" autant de fois que la quantité indiquée dans la cellule D7 de la Feuille 1"Formulaire de suivi".

J'ai trouvé des codes sur le net mais j'avoue ne pas réussir à les appliquer à mon cas.

Je joints mon formulaire de test Classeur 7

Par avance merci pour l'aide que vous pourrez m'apporter

Audrey

8classeur7.zip (18.91 Ko)

Bonsoir,

Voici le fichier modifié, j'ai également fait en sorte que les nouvelles données se mettent en dessous des précédentes.

Actuellement, votre macro écrasé systématiquement la première ligne, ce qui peut être embettant je pense.

Est-ce que cela convient ?

9classeur7.zip (18.68 Ko)

Merci infiniment!! c'est super

Quand je clique plusieurs fois sur le bouton macro, le lignes se copient les unes à la suite des autres;

En fait je voudrais que chaque fois que je clique sur le bouton, les données soient "rafraichies" et que la macro se relance et recommence à remplir depuis le début à partie de la cellule A2.

Est ce que vous pouvez m'aider?

Par avance merci

Audrey

3classeur8.zip (18.57 Ko)

Pas de soucis.

Mais imaginons qu'il y a 5 lignes et que vous souhaitez maintenant en mettre 3. Faut-il que la macro efface les 2 lignes en plus ?

Bonsoir,

Dans le doute, j'ai fait les deux versions, une qui écrase les lignes en trop et l'autre non.

Bonne soirée,

BI4ol

1classeur8.zip (18.26 Ko)

C'est parfait!!!! Vraiment un très grand merci!!!!

Rebonjour,

Sur le même modèle de recopie, j'ai essayée d'ajouter la copie de la Feuille 1 - Plage B10 à B7000 vers la colonne D de la Feuille 2 mais le résultat est très étonnant: la valeur 1 est répétée 6 fois avant la recopie de la plage de cellules; la procédure n'est peut être pas applicable aux plages de cellules? mon fichier est trop lourd pour un envoi alors j'ai copié le code si dessous.

Egalement, tout se passe bien quand je lance une recopie de 10 à 50 dupliques mais quand je lance une recopie de 6000 dupliques (cas réel d'utilisation), le fichier met environ 5 minutes pour achever la macro - quel conseil pouvez-vous me donner pour gagner du temps? est ce que cela irait plus vite si dans un premier temps, je remplis la première ligne de la feuille 2 puis recopie de la première ligne 6000 fois?

Sub Recopie()

derLn = Worksheets("data").Range("A" & Rows.Count).End(xlUp).Row

Max = Application.Max(derLn, Range("D7").Value)

For I = 1 To Max

If (I <= Range("D7").Value) Then

Range("I4").Copy Worksheets("Formulaire saisie").Range("A" & 9 + I)

Range("G4").Copy Worksheets("data").Range("A" & 1 + I)

Range("G3").Copy Worksheets("data").Range("B" & 1 + I)

Range("D5").Copy Worksheets("data").Range("C" & 1 + I)

Range("B10:B7000").Copy Worksheets("data").Range("D" & 1 + I)

Range("G5").Copy Worksheets("data").Range("G" & 1 + I)

Range("H5").Copy Worksheets("data").Range("I" & 1 + I)

Range("G6").Copy Worksheets("data").Range("J" & 1 + I)

Range("H6").Copy Worksheets("data").Range("L" & 1 + I)

Range("I4").Copy Worksheets("data").Range("M" & 1 + I)

Else

Worksheets("Formulaire saisie").Range("A" & 9 + I).Clear

Worksheets("data").Range("A" & 1 + I).Clear

Worksheets("data").Range("B" & 1 + I).Clear

Worksheets("data").Range("C" & 1 + I).Clear

Worksheets("data").Range("D" & 1 + I).Clear

Worksheets("data").Range("G" & 1 + I).Clear

Worksheets("data").Range("I" & 1 + I).Clear

Worksheets("data").Range("J" & 1 + I).Clear

Worksheets("data").Range("L" & 1 + I).Clear

Worksheets("data").Range("M" & 1 + I).Clear

End If

Next I

Bonsoir,

J'ai amélioré la macro qui devrait aller bien plus vite. 12000 dupliques sont instantanées chez moi.

J'ai également repris votre code pour la colonne D, ça devrait fonctionner.

Dites moi s'il y a le moindre soucis

Voici le code à copier :

Sub Recopie()
'Copie les variables fixes du lot du Formulaire de saisie vers les colonnes de la feuille data - Ligne 1
derLn = Worksheets("data").Range("A" & Rows.Count).End(xlUp).Row
Max = Application.Max(derLn, Range("D7").Value)

Range("I4").Copy Worksheets("data").Range("A2:A" & Range("D7").Value + 1)
Range("G3").Copy Worksheets("data").Range("B2:B" & Range("D7").Value + 1)
Range("D5").Copy Worksheets("data").Range("C2:C" & Range("D7").Value + 1)
Range("I5").Copy Worksheets("data").Range("G2:G" & Range("D7").Value + 1)
Range("J5").Copy Worksheets("data").Range("I2:I" & Range("D7").Value + 1)
Range("I6").Copy Worksheets("data").Range("J2:J" & Range("D7").Value + 1)
Range("J6").Copy Worksheets("data").Range("L2:L" & Range("D7").Value + 1)
Range("K4").Copy Worksheets("data").Range("M2:M" & Range("D7").Value + 1)

Worksheets("data").Range("A" & Range("D7").Value + 2 & ":A" & Max + 1).Clear
Worksheets("data").Range("B" & Range("D7").Value + 2 & ":B" & Max + 1).Clear
Worksheets("data").Range("C" & Range("D7").Value + 2 & ":C" & Max + 1).Clear
Worksheets("data").Range("G" & Range("D7").Value + 2 & ":G" & Max + 1).Clear
Worksheets("data").Range("I" & Range("D7").Value + 2 & ":I" & Max + 1).Clear
Worksheets("data").Range("J" & Range("D7").Value + 2 & ":J" & Max + 1).Clear
Worksheets("data").Range("L" & Range("D7").Value + 2 & ":L" & Max + 1).Clear
Worksheets("data").Range("M" & Range("D7").Value + 2 & ":M" & Max + 1).Clear

Range("B10:B7000").Copy Worksheets("data").Range("D" & 2)

End Sub
Rechercher des sujets similaires à "dupliquer ligne feuille fois"