Comment copier des lignes selon une quantité dans le tableau

coxman

XLDnaute Nouveau
Bonjour j'ai une base excel et je voudrais copier x nombre de fois les lignes de mon tableau selon une valeur dans ce tableau

Voila mon tableau

Nom Prénom Poids logo Quantité
Dupont René 125g dupont 3
Charles Patrice 500g charles 2

et voila ce que j'ai besoin au final je doit copier chaque ligne x nombre de fois selon le champ quantité, soit en inserrant soit dans une autre page du classeur

Nom Prénom Poids logo Quantité
Dupont René 125g dupont 3
Dupont René 125g dupont 3
Dupont René 125g dupont 3
Charles Patrice 500g charles 2
Charles Patrice 500g charles 2

j'ai réellement besoin que des 4 premiers champs mais pas de problème si j'ai la ligne compléte et cela peut même servir pour contrôler

en esperant que quelqu'un est une solution.

Merci d'avance


Edit: je peux enlever la première ligne bien évidement car je pense que cela gênera
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Comment copier des lignes selon une quantité dans le tableau

Bonjour coxman et Bienvenu sur XLD,
Un fichier exemple sans données confidentielles sera le Bienvenu aussi,
essayer de mettre aussi le résultat souhaité manuellement + quelques explications...
Aller en mode avancé ==> Gérer les pièces jointes
@ te relire
 

coxman

XLDnaute Nouveau
Re : Comment copier des lignes selon une quantité dans le tableau

Voici le tableau, mon tableau original définitif aura plus de 5000lignes la je n'ai que 2 lignes pour l'instant.

En feuil1 le tableau a convertir, en feuil2 le tableau a obtenir, ce n'est qu'un copier coller mais sur 5000ligne ça va être difficile a faire sans erreur
 

Pièces jointes

  • exemple base données.xlsx
    8.7 KB · Affichages: 74

laetitia90

XLDnaute Barbatruc
Re : Comment copier des lignes selon une quantité dans le tableau

bonjour coxman , R@chid
essai comme cela???


Code:
Sub es()
 Dim t(), t1(), x As Long, i As Long, k As Long, z As Long
 With Feuil1
 t = .Range("a2:e" & .Cells(Rows.Count, 1).End(xlUp).Row)
 x = 1
 For i = 1 To UBound(t)
 For z = 1 To t(i, 5)
 ReDim Preserve t1(1 To 5, 1 To x)
 For k = 1 To 5
 t1(k, x) = t(i, k)
 Next k: x = x + 1: Next z: Next i
 End With
 Feuil2.[a2].Resize(x - 1, 5) = Application.Transpose(t1)
 Erase t, t1
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 161
Messages
2 085 852
Membres
103 005
dernier inscrit
gilles.hery