Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

yonessar

XLDnaute Nouveau
Bonjour à tous,

Je manipule et comprends très mal le vba, néanmoins j'ai besoin d'utiliser des combobox en cascade sur un usf simple que j'avais créé, j'ai récupéré un code sur le site
Listes en cascade mais je n'arrive pas à comprendre pourquoi il ne fonctionne pas complétement quand je le recopie sur mon fichier.
Sur ma combobox 1 je récupère bien les infos de la colonne A de l'onglet feuil1 mais je n'arrive pas à obtenir les infos des colonnes B et C des la feuil1 sur les combobox 2 et 3 qui doivent être filtrées en fonction de l'info choisie dans la combobox 1.
Ci joint le fichier.

pour les réponses, je le répète, je suis un ignare en vba, donc n'hésitez pas, parlez moi comme à un débile .... non pas que ça me fasse plaisir, mais ça m'aidera à comprendre.

NB: pr lancer l'usf : double clic sur col A... je précise même si je pense que vous l'auriez qd même trouvé sans précision.
 

Pièces jointes

Dernière édition:
Re : Combobox en cascade

Bonsoir,

Code:
Dim f
Private Sub UserForm_Initialize()
  Set f = Sheets("feuil1")
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range(f.[A2], f.[A65000].End(xlUp))
    mondico(c.Value) = ""
  Next c
  Me.ComboBox1.List = mondico.keys
End Sub

Private Sub ComboBox1_Change()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range(f.[A2], f.[A65000].End(xlUp))
    If c = Val(Me.ComboBox1) Then mondico(c.Offset(, 1).Value) = ""
  Next c
  Me.ComboBox2.List = mondico.keys
  Me.ComboBox2.ListIndex = -1
  Me.ComboBox3.ListIndex = -1
End Sub

Private Sub ComboBox2_Change()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range(f.[A2], f.[A65000].End(xlUp))
    If c = Val(Me.ComboBox1) And c.Offset(, 1) = Me.ComboBox2 Then mondico(c.Offset(, 2).Value) = ""
   Next c
   Me.ComboBox3.List = mondico.keys
   Me.ComboBox3.ListIndex = -1
End Sub

JB
 
Re : Combobox en cascade

Super, ça fonctionne, merci pour la rapidité de la réponse.
Pour ma culture perso, quel terme dans le code, va faire chercher la macro sur les colonnes B et C (je ne vois que la colonne A dans le code) ?
Exsite t il un moyen de pouvoir utiliser la molette de la souris dans les 3 combobox, je n'ai rien trouvé dans les propriétés ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
1 K
Réponses
15
Affichages
670
Réponses
8
Affichages
102
Réponses
17
Affichages
929
Réponses
28
Affichages
2 K
Réponses
69
Affichages
6 K
Réponses
93
Affichages
4 K
Retour