Charger ComboBox Conditionnellement à un autre via RechercheV et sans Doublon

Résolu/Fermé
sgh.chafaa Messages postés 19 Date d'inscription jeudi 26 octobre 2017 Statut Membre Dernière intervention 24 août 2019 - 28 mai 2019 à 16:16
sgh.chafaa Messages postés 19 Date d'inscription jeudi 26 octobre 2017 Statut Membre Dernière intervention 24 août 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

2 réponses

sgh.chafaa Messages postés 19 Date d'inscription jeudi 26 octobre 2017 Statut Membre Dernière intervention 24 août 2019
28 mai 2019 à 22:55
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
0
sgh.chafaa Messages postés 19 Date d'inscription jeudi 26 octobre 2017 Statut Membre Dernière intervention 24 août 2019
29 mai 2019 à 10:11
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
0