' Convient à merveille pour Combobox enchaînés dans un certain ordre.
#If False Then ' Exemples d'instructions (non compilées ici)
Dim Paquet1() As Variant, Paquet2() As Variant, Paquet3() As Variant, LstLign() As Variant
Paquet1 = PaquetSsDbl(ActiveSheet.[A2:B5001]) ' fabrique le paquet pour les colonnes A, B, C pour 5000 lignes en partant de la 2
ComboBox1.List = Paquet1(0) ' Affecte les valeurs sans doublon de la 1ère colonne classées en ordre croissant au ComboBox1
Paquet2 = Paquet1(1)(ComboBox1.ListIndex + 1) ' récupère le sous-paquet colonnes B et C correspondant à la valeur choisie
ComboBox2.List = Paquet2(0) ' Affecte les valeurs sans doublon de la 2ième colonne pour ce choix de ComboBox1 au ComboBox2
Paquet3 = Paquet2(1)(ComboBox2.ListIndex + 1) ' récupère le sous-paquet colonnes C correspondant aux 2 précédentes valeurs choisies
ComboBox3.List = Paquet3(0) ' Affecte les valeurs sans doublon de la 3ième colonne pour ces choix précédents au ComboBox3
LstLign = Paquet3(1)(ComboBox2.ListIndex + 1) ' récupère la liste des numéros de lignes (relatifs au début) portant les 3 valeurs.
#End If ' Fin des exemples
' En somme le ListIndex du 1er ComboBox permet d'atteindre directement la liste dont on doit garnir le suivant et
' ainsi de suite, le ListIndex du dernier ComboBox pointant sur un ensemble de lignes pour une ListBox par exemple.
' Bien sûr, si l'application est telle qu'il ne peut jamais y avoir de doublon, le dernier niveau est toujours un
' tableau d'un seul élément d'indice 1 contenant ce numéro de ligne unique.