Charger ComboBox Conditionnellement à un autre via RechercheV et sans Doublon

Résolu
sgh.chafaa Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
sgh.chafaa Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

2 réponses

sgh.chafaa Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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