Insérer et coller lignes en fonction de la valeur variable d'une cellule

Bonjour à tous,

Nous recevons des bons de commande avec des produits et des quantités. le tableau fait 5 colonnes et Xcentaines de lignes

Le bon de commande commence à la ligne 2

Ces quantités sont dans la colonne E (on va appeler ça VAR)

Afin de publiposter, nous souhaiterions copier chaque ligne, insérer VAR-1 lignes en dessous de chacune puis ensuite coller VAR-1 fois le texte de la ligne copiée

Une fois ceci effectué, nous souhaiterions qu'il passe à la seconde ligne et réitère le processus jusqu'à la fin

Auriez vous des idées pour m'en sortir ?

Merci d'avance :)

Arthur

Bonjour Arthur et bienvenu, bonjour le forum,

Perso je n'ai rien compris ! Mais je te rassures c'est très courant...

En revanche, si tu souhaites des réponses rapidement, je te conseille de nous proposer un fichier exemple avec, dans le premier onglet, ce que tu as et, dans le second, ce que tu voudrais avoir...

Bonjour,

Voici le fichier :)

L'idée est de dupliquer des lignes en fonction de la valeur en colonne D en dessous de chaque ligne source (en feuille 1)

Re,

Essaie ce code :

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim TL As Variant 'déclare la variable TL (Tableau de la Ligne)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set OS = Worksheets("Feuil1") 'définit l'onglet source OS
Set OD = Worksheets("Feuil2") 'définit l'onglet destination OD
DL = OS.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet source
OD.Cells.ClearContents 'efface les anciennes valeurs de l'onglet OD
For I = 1 To DL ' boucle sur toutes les lignes I de 1 à DL
        TL = OS.Cells(I, 1).Resize(1, 3) 'définit le tableau TL de la ligne I de la boucle
        'définit la cellule de destination DEST (A1 si A1 est vide, sinon la première cellule vide de la colonne A de l'onglet OD)
        Set DEST = IIf(OD.Range("A1").Value = "", OD.Range("A1"), OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0))
        If OS.Cells(I, 1).Value <> "" Then DEST.Resize(OS.Cells(I, 4).Value, 3).Value = TL 'renvoie dans DEST redimensionnée le tableau TL
Next I 'prochaine ligne de la boucle
End Sub

Vous êtes un magicien !! :)

Merci beaucoup pour votre aide !

Exellente journée !!

Rechercher des sujets similaires à "inserer coller lignes fonction valeur variable"