Boucle pour dupliquer des lignes dans excel

Pliskhy -  
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   154
 
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
Pliskhy
 
Re,

Merci ta méthode fonctionne, il me reste à l'intégrer dans mon tableau.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
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