Salut, j'ai du gèrer une situation similaire il y a pas longtemps pour une combobox avec des équipements puis une deuxième avec les sous-équipements.
Je sais pas comment ça pourrais marcher avec 3 entrées, mais voice la solution que j'avais trouvé a mon problème :
Mes équipements et sous équipements sont renseignés comme il suit dans une feuille excel "DATA":
Equipement 1 -> Equipement 2 -> Equipement 3 -> ...
Ss-Equip 1 Ss-Equip 1 Ss-Equip 1
Ss-Equip 2 Ss-Equip 2 ...
Ss-Equip 3 ... ...
Je crée la liste déroulante des équipements
Code :
- Private Sub UserForm_Initialize()
- 'Création de la liste déroulante des équipements
- nb_equip = Worksheets("DATA" ).Range("B4" ).End(xlToRight).Column
- selec_equip.Clear
-
- For i = 2 To nb_equip
- nb_equip_nom = Worksheets("DATA" ).Cells(4, i).Value
- selec_equip.AddItem nb_equip_nom
- Next I
- End Sub
|
Ensuite, pour creer la deuxième liste voila le code qui se charge quand on clic sur la combobox des sous équipements:
Code :
- Private Sub selec_equip_Change()
- nb_equip = Worksheets("DATA" ).Range("B4" ).End(xlToRight).Column
- 'Comptage du nombre d'equipements
- equip = Range(Worksheets("DATA" ).Cells(4, 2), Worksheets("DATA" ).Cells(4, nb_equip)).Find(selec_equip.Value).Column
- 'On retrouve le numero de colonne de l'équipement selectioné dans la combobox équipement (selec_equip)
- 'Création de la liste déroulante des sous-équipements
- nb_ss_equip = Worksheets("DATA" ).Cells(4, equip).End(xlDown).Row
- 'On compte le nombre de ss équipements rattaché a l'équipement
- selec_ss_equip.Clear
- 'On nettoi la combobox des ss équipements, pour eviter l'accumulation
-
- For i = 5 To nb_ss_equip
- nb_ss_equip_nom = Worksheets("DATA" ).Cells(i, equip).Value
- selec_ss_equip.AddItem nb_ss_equip_nom
- Next i
- 'On ajoute tout les ss équipements a la liste
- End Sub
|
Dans mon cas, un sous équipement peut être rattaché qu'a un seul équipement, je suis pas surs que ça soit aussi vrai dans ton cas, mais tu trouvera peut être l'inspiration dans ce bout de code.
Les bugs connus : plantage si il n'y a aucun équipement rentré, ou un équipement sans sous équipement, mais c'est normalement impossible.
Bon courage