Charger ComboBox Conditionnellement à un autre via RechercheV et sans Doublon [Résolu]

Messages postés
10
Date d'inscription
jeudi 26 octobre 2017
Statut
Membre
Dernière intervention
29 mai 2019
- - Dernière réponse : sgh.chafaa
Messages postés
10
Date d'inscription
jeudi 26 octobre 2017
Statut
Membre
Dernière intervention
29 mai 2019
- 29 mai 2019 à 10:11
Bonjour à tout le monde :)


pas fort en VBA comme d'habitude, je cherche toujours de combiner les codes que je trouve sur internet pour arriver à mon objectif


cette fois ci,je cherche de charger un combobox2 conditionnellement au premier, un équivalant de RechercheV mais en VBA code


le premier combobox pour le choix des nationalité ,nommé ComboBoxNationalite se charge à l'ouverture de l'userForm , nommé: FenterePrincipal


Cette liste des nationalités se charge sans doublon (code déja opérationnel, à voir dans le fichier ci-joint)


Ce que je Cherche:

1- Remplir le deuxième combobox, nommé: ComboBoxRegion, conditionnellement au premier, par exemple en choisissant Nationalité : "Française", la liste des régions sera remplit uniquement avec Lyon, Paris et Nice

2- Aussi que cette liste soit sans doublon, exactement comme la première (dans ce cas Région"Nice" ne soit pas répéter 4 Fois)



Quelqu'un peut me donner un coup de main SVP ?

https://www.dropbox.com/s/fqttr7csrpv3wxn/combobox%20conditionnel%20et%20sans%20doublon.xlsm?dl=0

Configuration: Windows / Chrome 74.0.3729.169
Afficher la suite 

2 réponses

Messages postés
10
Date d'inscription
jeudi 26 octobre 2017
Statut
Membre
Dernière intervention
29 mai 2019
0
Merci
Re-Bonjour

Je commence à avancer mais je me bloque toujours au niveau du boucle cumulatif des region selon la nationalité

Private Sub ComboBox1_Change()
Dim D As Worksheet
Set D = Worksheets("Feuil1")
Dim dictionary
Set dictionary = CreateObject("Scripting.Dictionary")
On Error Resume Next

'ComboBox2 = Application.WorksheetFunction.VLookup(ComboBox1.Text, Range("A2:B10000"), 2, faux)

For Each region In Range(D.[B1], [B10000].End(xlUp))

'dictionary.Item(region.Value) = region.Value
'dictionary.Item(region.Value) = Application.WorksheetFunction.VLookup(ComboBox1.Text, Range("A2:B10000"), 2, faux)
dictionary.Item(Application.WorksheetFunction.VLookup(ComboBox1.Text, Range("A2:B10000"), 2, faux)) = Application.WorksheetFunction.VLookup(ComboBox1.Text, Range("A2:B10000"), 2, faux)
Next region

Me.ComboBox2.List = dictionary.items

Ci-joint: https://www.dropbox.com/s/m80vav37i1izll6/combobox%20conditionnel%20et%20sans%20doublon1.xlsm?dl=0
Commenter la réponse de sgh.chafaa
Messages postés
10
Date d'inscription
jeudi 26 octobre 2017
Statut
Membre
Dernière intervention
29 mai 2019
0
Merci
Finalement !!
Voilà la solution , : deuxième combobox dépends du premier:Sans Doublon et Trié en Plus
J'ai essayé de commenté le code au maximum pour que ça soit clair
honnêtement c ps moi que j'ai codé, mais j'ai compris superficiellement le code sauf le fonctionnement du fonction TRIE
Source Réference (et par la même occasion le grand merci) : http://boisgontierjacques.free.fr/pages_site/formulairecascade.htm

Bonne Journée à tous

Fichier: https://forum.excel-pratique.com/download/file.php?id=237156
Commenter la réponse de sgh.chafaa