Boucle pour dupliquer des lignes dans excel

Fermé
Pliskhy - Modifié par Pliskhy le 25/06/2014 à 11:03
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 25 juin 2014 à 11:51
Bonjour,

j'ai un tableau excel à 3 colonnes qui réfence:
- 1 article
- 1 code de réference
- 1 nombre d'étiquettes nécessaires.

ce que je cherche à faire c'est à l'aide d'un bouton, c'est dupliquer sur une feuille 2 l'article et le numero de référence sur autant de lignes qu'il y as d'étiquettes nécessaires.

Par exemple
Feuille 1

A 001 2
B 002 3
etc...


Feuille 2
A 001
A 001
B 002
B 002
B 002
etc...

merci, d'avance pour l'aide que vous pourriez m'apporter.

A voir également:

3 réponses

eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 152
Modifié par eljojo_e le 25/06/2014 à 11:26
Bonjour,
essaye ca :
Sub test()
numd = 1
For num1 = 1 To 1000 'nombre de ligne max
If Range("a" & num1).Value = "" Then
Sheets("Feuil2").Range("a" & num2 - 1).Value = ""
Sheets("Feuil2").Range("b" & num2 - 1).Value = ""
Exit Sub
End If
a = Range("a" & num1).Value
b = Range("b" & num1).Value
c = Range("c" & num1).Value
For num2 = numd To c + numd
Sheets("Feuil2").Range("a" & num2).Value = a
Sheets("Feuil2").Range("b" & num2).Value = b
Next
numd = numd + c
Next

End Sub

Mesurer la masse de sa connerie permettrait dans connaitre sa gravité ;)
0
Re,

Merci ta méthode fonctionne, il me reste à l'intégrer dans mon tableau.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
25 juin 2014 à 11:51
Bonjour,

La méthode fonctionne effectivement. Mais ça implique que la longueur du tableau reste figée à un nombre de ligne et qu'il faut revenir sur le code pour modifier le nombre de lignes si le tableau évolue.

Voilà une méthode qui s'adapte quelque soit la longueur du tableau:

Dim Derlig1 As Long
Dim Derlig2 As Long
Dim nb As Integer
Dim i As Long
Dim j As Integer

    Derlig1 = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To Derlig1
        nb = CInt(Sheets(1).Range("C" & i).Value)
        For j = 1 To nb
            Derlig2 = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row
            Sheets(2).Range("A" & derlig2 + 1).Value = Sheets(1).Range("A" & i).Value
            Sheets(2).Range("B" & derlig2 + 1).Value = Sheets(1).Range("B" & i).Value
        Next j
    Next i

0