Remplir Combobox MultiColonne

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 

Pièces jointes

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.
 
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........
 
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+
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
26
Affichages
2 K
Retour