Private Sub ComboBox1_Change()
' Cette macro s'exécute lors du changement de la sélection dans la liste
Dim NbComp As String ' définit la variable du nbre de composants du produit
Dim LgProd As String ' définit la ligne sur laquelle se trouve le produit choisi dans la liste déroulante
' la ligne suivante récupère la position du produit dans la liste (cette liste démarre à 0)
' et lui ajoute 2 afin de correspondre à la ligne contenant cette valeur sur la feuille active
LgProd = ComboBox1.ListIndex + 2
' La ligne suivante efface la liste déroulante de la feuille 2
Range("B6:B11").ClearContents
' Les instructions suivantes s'exécutent sur la feuille 1p
With Sheets("Feuil1")
' la variable nbcomp récupère le n° de la dernière cellule de doite, sur la ligne Lgprod de la feuille 1
' la recherche se fait à partir de la cellule située en dernière colonne (IV) en allant vers la gauche
NbComp = .Range("IV" & LgProd).End(xlToLeft).Column
' Cette boucle affecte aux cellules B6:B11 de la feuille 2 les valeurs des sous-produits de la feuille 1
For cl = 2 To NbComp
Cells(cl + 4, 2) = .Cells(LgProd, cl)
Next
End With
End Sub