Remplir Combobox MultiColonne

GeoTrouvePas

XLDnaute Impliqué
Bonjour tout le monde,

Je me retrouve embêté avec le chargement de la 2ème colonne d'un Combobox.

Ma macro boucle sur une feuille (DATA_PERIODES) pour constituer une liste de login. Cette liste est chargée dans un dictionnaire pour éviter les doublons. Mon but est de charger cette liste dans la 1ère colonne d'un Combobox et d'associer dans la 2ème colonne le nom et le prénom associé (que je trouve dans DATA_PERSONNEL).

J'arrive à charger directement les clés du dictionnaire dans la 1ère colonne mais je n'arrive pas à charger les items dans la 2ème. J'ai donc essayé de faire une boucle sur la 1ère colonne et de compléter la 2ème mais ça ne fonctionne pas non plus.

Sauriez vous me dire ce qui ne va pas dans mon code ?

Je vous remercie par avance
 

Fichiers joints

GeoTrouvePas

XLDnaute Impliqué
Bonjour Nicole et merci pour ton exemple. Mon soucis est que je ne peux pas passer par un "ComboBox1.List = Range("maliste3").Value" car mes données ne sont pas directement prises sur des cellules contiguës.

Compte tenu du volume très important et de la présence de doublons, je dois d'abord passer par un dictionnaire.
 

GeoTrouvePas

XLDnaute Impliqué
Bonjour PierreJean

Désolé mon navigateur n'avait pas rechargé la page avant que je réponde. Ma solution était similaire à la tienne mais en moins fluide.

Par contre j'ai un comportement suspect sur mon adaptation. J'ai l'habitude de fonctionner avec un indice minimum de 1 sur mes variables tableau. J'ai beau utiliser un Option Base 1, il semblerait que l'utilisation de "a = mondico.keys" provoque automatiquement un indice minimum de 1........
 

job75

XLDnaute Barbatruc
Bonsoir,
Par contre j'ai un comportement suspect sur mon adaptation. J'ai l'habitude de fonctionner avec un indice minimum de 1 sur mes variables tableau. J'ai beau utiliser un Option Base 1, il semblerait que l'utilisation de "a = mondico.keys" provoque automatiquement un indice minimum de 1........
Il est facile de vérifier que les keys et items d'un Dictionary sont toujours en base 0 :
Code:
Option Base 1 'ne modifie pas la base du Dictionary

Sub test()
Dim d As Object, a, b
Set d = CreateObject("Scripting.Dictionary")
d("xx") = 1
a = d.keys: b = d.items
MsgBox LBound(a)
MsgBox LBound(b)
End Sub
A+
 

GeoTrouvePas

XLDnaute Impliqué
Bonsoir,

Il est facile de vérifier que les keys et items d'un Dictionary sont toujours en base 0 :
Code:
Option Base 1 'ne modifie pas la base du Dictionary

Sub test()
Dim d As Object, a, b
Set d = CreateObject("Scripting.Dictionary")
d("xx") = 1
a = d.keys: b = d.items
MsgBox LBound(a)
MsgBox LBound(b)
End Sub
A+
Bien vu, je n'y avais pas pensé.
Je ne suis pas vraiment familier avec l'objet Dictionnaire.
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas