XL 2010 Copier lignes nb de fois variable

Sarnia

XLDnaute Nouveau
Bonjour,

J'ai un tableau dans lequel se trouvent des lignes avec des informations pour éditer des étiquettes. J'aimerais
pouvoir copier ces informations un certain nombre de fois les unes à la suite des autres. Ce nombre de fois varie d'un dossier à l'autre ainsi que le nombre de lignes à copier. Aujourd'hui, je le fais manuellement mais j'avoue que c'est fastidieux.

Dans l'exemple en pièce jointe :

les données de la ligne 2 (article 1) - colonne A à I seraient copiées 29 fois sur l'onglet EAN
les données de la ligne 3 (article 2) - colonne A à I seraient copiées 58 fois sur l'onglet EAN.
Ces 58 lignes se situeraient juste en dessous des 29 lignes de l'article 1
etc

La colonne TOTAL indique le nombre de fois qu'il faut copier les lignes.


Pourriez-vous me dire comment je pourrais faire ?

En espérant avoir été suffisamment claire.

Merci d'avance.
 

Pièces jointes

  • Codes.xls
    28.5 KB · Affichages: 31

youky(BJ)

XLDnaute Barbatruc
Bonjour Sarnia,
De retour le fichier avec une macro, donc il faut activer les macro à l'ouverture.
voici le code macro
VB:
Sub recap()
ligne = 2
Feuil2.[A2:I2000].ClearContents 'efface
For lig = 2 To Feuil1.[M65000].End(3).Row
For lg = 1 To Feuil1.Cells(lig, 13)
Feuil2.Range("A" & ligne & ":I" & ligne).Value = Feuil1.Range("A" & lig & ":I" & lig).Value
ligne = ligne + 1
Next
Next
End Sub

outils>macro>exécuter>recap
Bruno
 

Pièces jointes

  • Codes.xlsm
    17.3 KB · Affichages: 34

Sarnia

XLDnaute Nouveau
Bonjour Bruno,

Merci mille fois pour ton retour ! C'est formidable.

Le petit hic, c'est que la mise en forme des EAN en mode texte est perdue lors de la recopie (les zéros qui débutent le code). Si tu penses pouvoir régler ce léger souci, ça serait la cerise sur le gâteau.
Sinon, c'est pas grave, je me débrouillerai pour repasser en mode texte une fois la copie faite.

En tout cas, merci encore ! Je vais gagner un temps précieux.
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

A essayer,
Sub recap()
ligne = 2
Feuil2.[A2:I2000].ClearContents 'efface
Feuil2.[I2:I2000].NumberFormat = "@" 'Format texte colonne I
For lig = 2 To Feuil1.[M65000].End(3).Row
For lg = 1 To Feuil1.Cells(lig, 13)
Feuil2.Range("A" & ligne & ":I" & ligne).Value = Feuil1.Range("A" & lig & ":I" & lig).Value
ligne = ligne + 1
Next
Next
End Sub

JHA
 

Discussions similaires

Statistiques des forums

Discussions
312 416
Messages
2 088 246
Membres
103 784
dernier inscrit
Métro-logue