Bonjour Evolm, bonjour le forum,
Une proposition VBA :
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Set O = Worksheets("Feuil1") 'définit l'onglet O
TV = O.Range("A1").CurrentRegion 'définit la tableau des valeurs TV
O.Range("J1").CurrentRegion.Offset(1, 0).ClearContents 'éfface d'éventuelles anciennes données
K = 1 'initialise la variable K
For I = 2 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
For J = 1 To TV(I, 8) 'boucle 2 sur le nombre indiqué dans la donnée ligne I colonne 8 de TV
ReDim Preserve TL(1 To 5, 1 To K) 'redimensionne le tableau des lignes (5 lignes, K colonnes)
TL(1, K) = TV(I, 2) 'récupère le [ADR PICK] dans la ligne 1 de TL
TL(2, K) = TV(I, 3) 'récupère la [REF] dans la ligne 2 de TL
TL(3, K) = TV(I, 4) 'récupère le [LIBELLE] dans la ligne 3 de TL
TL(4, K) = TV(I, 6) 'récupère le [PCB] dans la ligne 4 de TL
TL(5, K) = TV(I, 7) 'récupère la [Somme de Besoin PI] dans la ligne 5 de TL
K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes TL)
Next J 'prochaine fois de la boucle 2
Next I 'prochaine ligne de la boucle 1
'si K est supérieure à 1, envoie dans J2 redimensionnée de l'onglet O, le tableau TL transposé
If K > 1 Then O.Range("J2").Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL)
End Sub