Bonjour …
Un mot pour un autre et paf : « des mots dits, des maux subis ! »
Du marc de café pour lire … ce n’est pas ma tasse de thé !
Si dans le fichier joint, il n’y a pas de contrôle Listbox, il y a bien une liste nommée Section (déroulante pour Combobox et non ListBox).
Le problème vient simplement* de la propriété RowSource mal initialisée (A2 mais pourquoi ?) !
Si on la vide, les premières macros proposées donneront les listes attendues.
* une fois de plus je vais préconiser l’ouverture de la fenêtre des propriétés des objets (F4) dans l’éditeur Visual Basic, 1, pour savoir quelles sont celles disponibles pour l’objet, 2, pour initialiser celles qui seront invariables sans alourdir la partie Macro !
Tant que j’y suis, je continue à préconiser l’utilisation de tableau structuré (comme dans l’exemple joint).
‘C1 liste pour l’affiliation, C2 celle pour la section
Private Sub UserForm_Initialize()
C1.List = [TA].Value 'TA : tableau à 2 colonnes des titres et noms des listes associées ç1, ç2 …
End Sub
Private Sub C1_Change()
C2.ListIndex = -1 'vider : .Clear pose problème avec ma version
C2.RowSource = Feuil2.Range(C1.List(C1.ListIndex, 1)).Address
End Sub
Nota : ici la seconde liste est initialisée avec la propriété
RowSource plutôt que la propriété
List (oubliée dans la liste) car certaines versions d’Excel ne supportent pas, pour cette dernière, des listes d’un seul item.
Remarque : d’habitude je passe par la propriété .List avec des tableaux structurés mais ils doivent être de plus d’une ligne (selon la version d’Excel).
Ici, avec la propriété .RowSource, on peut même avoir le titre de la plage.