Combobox
Résolu/Fermé
nihadlahit
-
1 avril 2017 à 14:29
NLAH Messages postés 125 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 13 juin 2017 - 1 avril 2017 à 22:02
NLAH Messages postés 125 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 13 juin 2017 - 1 avril 2017 à 22:02
Bonjour,
j'aimerai savoir comment creer une liste déroulante à partir des valeurs presentes dans la colonne A de telle sorte que:
la liste deroulante ne peut pas contenir des doublons.
Merci
j'aimerai savoir comment creer une liste déroulante à partir des valeurs presentes dans la colonne A de telle sorte que:
la liste deroulante ne peut pas contenir des doublons.
Merci
1 réponse
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
1 avril 2017 à 18:56
1 avril 2017 à 18:56
Bonjour Nihadlahit, bonjour le forum,
Le code ci-dessous imagine que la Combobox se nomme ComboBox1 qu'elle se trouve dans une UserForm. C'est le code d'initialisation de cette UserForm :
La boucle For I =... part de la ligne 2 car on considère que la ligne 1 contient les étiquettes (en-têtes) de la colonne. Si ce n'est pas le cas remplace 2 par 1.
Le code ci-dessous imagine que la Combobox se nomme ComboBox1 qu'elle se trouve dans une UserForm. C'est le code d'initialisation de cette UserForm :
Private Sub UserForm_Initialize() Dim O As Worksheet 'déclare la variable O (Onglet) Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs) Dim D As Object 'déclare la variable D (Dictionnaire) Dim I As Integer 'd;ecalre la variable I (Incrément) Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas) TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde) D(TV(I, 1)) = "" 'alimente le dictionnaire D avec les données en colonne 1 du tableau des valeurs TV Next I 'prochaine ligne de la boucle Me.ComboBox1.List = D.keys 'alimente la ComboBox1 avec la liste des éléments du dictionnaire D sans doublon End Sub
La boucle For I =... part de la ligne 2 car on considère que la ligne 1 contient les étiquettes (en-têtes) de la colonne. Si ce n'est pas le cas remplace 2 par 1.
1 avril 2017 à 22:02