Liste déroulante dépendante d'autres listes (+ choix multiple)

  • Initiateur de la discussion Initiateur de la discussion Monky
  • 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 !

Monky

XLDnaute Nouveau
Bonjour,

Je souhaiterais créer une liste déroulante dépendante d'autre liste (c'est à dire que les choix de cette liste numéro2 se font en fonction des choix de la liste numéro1)... et peut être aussi, créer une liste déroulante dépendant d'autre liste, elle même dépendante d'une autre liste.

Et pour compliquer le tout, il faudrait que les choix de ces listes soient multiples et encore, des choix supplémentaires devront être intégrés facilement pour des utilisateurs non confirmés.

Un exemple :
col 1 col 2 col 3
AFRIQUE afrique subsahara, afrique centrale... liste des pays
AMERIQUES amerique du nord, centrale, sud "
ASIE moyent orient, extreme orient... "
EUROPE UE, hors UE.. "
OCEANIE oceanie "

Dans ma case "continent", il faudrait par exemple que je puisse sélectionner afrique et amériques, puis les sous continents référant enfin à mes pays...

Je me suis déjà pencher sur les formules " =DECALER(SousListe;;EQUIV" sans grand succès car bien que simple, elle ne permet pas les choix multiples. Je également vu quelques exemples en VBA, mais ne maitrisant pas ce language, il va me falloir quelques temps pour tout déchiffrer et voir si le tuto trouvé correspond à mes attentes.

Ma question est donc la suivante : est-il simplement possible de créer cet "embriquement" de listes à choix multiples ? Avez vous déjà rencontré des exemples de ce type ? Si oui, je suis bien évidemment preneur de tout support, remarque et avis..

Merci par avance,
Cordialement,
 

Pièces jointes

Dernière édition:
Re : Liste déroulante dépendante d'autres listes (+ choix multiple)

Bonsoir,

Parfois je pèse mal mes termes, désolé BOISGONTIER, vous êtes probablement à des années lumières devant moi en ce qui concerne ma recherche, à tel point que je n'étais pas certain que ce que je recherchais était une "liste en cascade"...

Le formulaire c'est simple, mais j'ai oublié de préciser que le ficher créer devra être une base de donnée au format "liste" (exporter ligne par ligne en cvs), il faut donc que j'ai dans une cellule le ou les continents, dans une autre le ou les sous continents, dans une autre les ou les pays... ce qui est au final pas très joli (recherche compliquée, on ne sait pas si pays1 est dans le continent1...)
 
Re : Liste déroulante dépendante d'autres listes (+ choix multiple)

maitre Boisgontier vous êtes bluffant ... c'est dans des cas comme celui-ci que l'on se rend compte que l'on utilise excel à qqs % de sa puissance ...

C'est tout à fait vrai...

Est il possible de revoir l'usage de cette macro en rendant le choix de la liste niveau 1 et 2 unique tout en laissant le choix de la liste niveau 3 multiple ?

Egalement, est-il possible d'insérer un caractère espaceur pour le choix multiple du niveau 3 ? J'ai tenter pas mal de manipulations dans le code mais à chaque fois je finis par le casser.

Merci par avance,
 
Bonjour, je cherche à faire évoluer cette programmation afin que le choix 3 soit dépendant du choix 2 et du choix 1, car dans l'exemple, le choix 3 ne dépend que du 2. Je m'explique: Si par exemple , si on avait comme présenté ci dessous, dans l'onglet BD, 3 pays proposé pour choix 1 Europe et choix 2 Nord , et 2 pays proposés pour choix 1 Amérique et Choix 2 Nord, je ne voudrais avoir présenté que les 3 pays d'Europe Nord lorsque que j'ai choisi Europe. Or actuellement le code me permet de choisir parmi tous les pays dont le choix 2 est Nord, indépendamment du choix 1 (voir imprim écran suivant.)
j'ai essayé de modifier le code mais ensuite ça ne marche plus du tout.



D'avance merci pour votre retour

1611857869853.png


1611858009587.png



Voici le code de l'User Form

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.ListBox1.List = mondico.items
Me.ListBox1.MultiSelect = fmMultiSelectMulti
End Sub
Private Sub ListBox1_Change()
Me.ListBox3.Clear
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[A2], f.[A65000].End(xlUp))
For k = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(k) = True Then
If c = Me.ListBox1.List(k, 0) Then
temp = c.Offset(, 1)
mondico(temp) = temp
End If
End If
Next k
Next c
Me.ListBox2.List = mondico.items
End Sub
Private Sub ListBox2_Change()
Me.ListBox3.Clear
For Each c In Range(f.[B2], f.[B65000].End(xlUp))
For k = 0 To Me.ListBox2.ListCount - 1
If Me.ListBox2.Selected(k) = True Then
If c = Me.ListBox2.List(k, 0) Then Me.ListBox3.AddItem c.Offset(, 1)
End If
Next k
Next c
End Sub
Private Sub b_ok_Click()
temp = ""
For k = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(k) = True Then temp = temp & Me.ListBox1.List(k, 0) & " "
Next k
ActiveCell = temp
'--
temp = ""
For k = 0 To Me.ListBox2.ListCount - 1
If Me.ListBox2.Selected(k) = True Then temp = temp & Me.ListBox2.List(k, 0) & " "
Next k
ActiveCell.Offset(, 1) = temp
temp = ""
For k = 0 To Me.ListBox3.ListCount - 1
If Me.ListBox3.Selected(k) = True Then temp = temp & Me.ListBox3.List(k, 0) & " "
Next k
ActiveCell.Offset(, 2) = temp
Unload Me
End Sub
 
Dernière édition:
- 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
Retour