Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Intégrer une liste en cascade dans un userform

  • Initiateur de la discussion Initiateur de la discussion Theymis
  • Date de début Date de début

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 !

T

Theymis

Guest
Bonjour à tous, 🙂

je me trourne vers vous pour un peu d'aide. J'ai écumé des forums pour chercher quelque chose s'approchant de ce que je souhaite faire mais impossible d'arriver à appliquer une formule, rien de ce que j'ai tenté n'a marché...

En fait, 3 combox ont été crées et j'aimerai que la ComBox2 dépende de la 1 et que la 3 dépende de la 1 et la 2.

J'ai donc plusieurs grandes catégories : Mobilier, Déco, ...etc
des sous catégories pour chaque catégorie par exemple dans mobilier je vais retrouver salle à manger, chambre...etc
et encore des sous-sous catégories c'est à dire que si je clique sur chambre par exemple, je pourrais choisir le meuble "lit". J'espère que je suis assez claire dans ce que je tente de vous expliquer...

Je vous joint un petit fichier qui pourra vous aider a voir un peu ce que j'essaye de faire.

Merci d'avance pour votre aide.
 

Pièces jointes

Re : Intégrer une liste en cascade dans un userform

Bonsoir.
Le plus simple c'est de confier la gestion des ComboBox à mon module de classe ComboBoxCasc.
Là il n'y a pas de userform. Pouvez vous le re-joindre au format .XLS (Chez moi la conversion des .XLSM y laisse des plumes)
À +
 
Re : Intégrer une liste en cascade dans un userform

Merci Dranreb pour votre aide. Je remet le fichier en xls comme demandé.
En fait il faudrait que cela puisse être sous la forme de userform car j'aimerai intégrer cette liste en cascade dans un autre userform comportant TextBox, Commandbutton et Optionbutton. Donc vraiment quelque chose que je veux assez complet.

EDIT : fichier ré-envoyé, j'ai du faire une mauvaise manip donc mon userform du début n'a pas été enregistré. Celui dans le fichier joint ne comporte donc que les 3 ComboBox...
 

Pièces jointes

Dernière modification par un modérateur:
Re : Intégrer une liste en cascade dans un userform

Oui je viens de voir désolée, apparament j'ai oublié/mal enregistré... J'ai édité mon message plus haut (le .xls) où vous trouverez un userform trés basique pour le coup.
 
Re : Intégrer une liste en cascade dans un userform

Merci beaucoup Dranreb. Je n'ai pas encore regardé tout ce qui a été fait en détail, je me suis concentrée sur les codes inscrits dans le userform. Cependant, il semble que cela ne fonctionne pas parfaitement. La colonne B (les sous-catégories) devrait se trouver dans la combobox2 et la C dans la combobox3 or ce n'est pas le cas. (?)
 
Re : Intégrer une liste en cascade dans un userform

Bonjour,

Menus en cascade3 niveaux

http://boisgontierjacques.free.fr/fichiers/Formulaire/FormCascade3niv.xls

La BD commence en A1

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

Private Sub ComboBox1_Change()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range(f.[A2], f.[A65000].End(xlUp))
    If c = Me.ComboBox1 Then mondico(c.Offset(, 1).Value) = c.Offset(, 1).Value
  Next c
  Me.ComboBox2.List = mondico.items
  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 = Me.ComboBox1 And c.Offset(, 1) = Me.ComboBox2 Then mondico(c.Offset(, 2).Value) = c.Offset(, 2).Value
   Next c
   Me.ComboBox3.List = mondico.items
   Me.ComboBox3.ListIndex = -1
End Sub

JB
 

Pièces jointes

Dernière édition:
Re : Intégrer une liste en cascade dans un userform

Merci beaucoup à tout les deux, j'ai essayé d'appliquer le code que vous m'avez communiqué Boisgontier. Au début sans succés mais là tout marche correctement pour le moment.

Bien cordialement.
 
Re : Intégrer une liste en cascade dans un userform

Bonjour.
Cependant, il semble que cela ne fonctionne pas parfaitement.
Ça fonctionne comme je croyais que cela devait fonctionner: les sous catégories ne sont proposées dans le ComboBox2 que si une catégorie a été choisie dans le 1. S'il faut pouvoir choisir dans n'importe quel ordre, c'est un autre module de classe qu'il faut: ComboBoxLiés.
P.S. Le code dans l'userform, lui, ne changera guère. Dites moi si c'est ce que vous voulez, je cherche justement un débouché pour tester tous les cas de figure d'une application utilisant ComboBoxLiés pour en publier la dernière version dans mon OutIdx
À +
 
Dernière édition:
Re : Intégrer une liste en cascade dans un userform

Dranreb c'est moi qui devait être fatiguée quand j'ai regardé votre travail. En effet en vérifiant votre fichier c'est exactement ça que je cherchais. Votre module est assez impressionnant. Désolée pour ma méprise.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
  • Question Question
Réponses
8
Affichages
923
L
N
Réponses
8
Affichages
1 K
Neckramhon
N
Réponses
8
Affichages
805
R
Réponses
13
Affichages
2 K
ROBYlois
R
F
Réponses
4
Affichages
865
Compte Supprimé 979
C
P
Réponses
6
Affichages
1 K
pierre750
P
G
Réponses
2
Affichages
2 K
guigol
G
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…