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

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,
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix

Pièces jointes

  • Classeur1.xls
    35 KB · Affichages: 399
  • Classeur1.xls
    35 KB · Affichages: 418
  • Classeur1.xls
    35 KB · Affichages: 424
Dernière édition:

Monky

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

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Liste déroulante dépendante d'autres listes (+ choix multiple)

Voir pj

JB
 

Pièces jointes

  • DVCascadeFormMultiSelection2.xls
    35 KB · Affichages: 641
  • DVCascadeFormMultiSelection3.zip
    19.5 KB · Affichages: 296
Dernière édition:

Monky

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

julien6337

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

Discussions similaires

Statistiques des forums

Discussions
312 331
Messages
2 087 353
Membres
103 528
dernier inscrit
hplus