Intégrer une liste en cascade dans un userform

Theymis

XLDnaute Nouveau
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

  • Liste-en-cascade.xlsx
    10.5 KB · Affichages: 49

Dranreb

XLDnaute Barbatruc
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)
À +
 

Theymis

XLDnaute Nouveau
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

  • Liste-en-cascade.xls
    40.5 KB · Affichages: 54
Dernière édition:

Theymis

XLDnaute Nouveau
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. (?)
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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

  • Copie de FormCascade3niv.xls
    49.5 KB · Affichages: 73
Dernière édition:

Theymis

XLDnaute Nouveau
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.
 

Dranreb

XLDnaute Barbatruc
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:

Theymis

XLDnaute Nouveau
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.
 

Discussions similaires

Réponses
8
Affichages
581

Statistiques des forums

Discussions
312 231
Messages
2 086 430
Membres
103 207
dernier inscrit
Michel67