J'ai deux combobox liées
FZOLK
Messages postés
1
Statut
Membre
-
ThauTheme Messages postés 1564 Statut Membre -
ThauTheme Messages postés 1564 Statut Membre -
Bonjour tt le monde,
ça fait des jours que j'essaie de faire une petite appli;
En fait j'ai deux combobox, la première me permet de choisir un article de la colonne A. EN fonction de ce choix je voudrais que ma seconde combobox m'affiche l'information de la colonne B qui correspond à cet article ( sachant que le même article de répète dans mon tableau);
Merci par avance
ça fait des jours que j'essaie de faire une petite appli;
En fait j'ai deux combobox, la première me permet de choisir un article de la colonne A. EN fonction de ce choix je voudrais que ma seconde combobox m'affiche l'information de la colonne B qui correspond à cet article ( sachant que le même article de répète dans mon tableau);
Merci par avance
1 réponse
-
Bonjour Fzolk, bonjour le forum,
Si tes données sont placées comme ci-dessous :
Colonne A / Colonne B
Articles / Info_Article
Article1 / info 1.1
Article1 / info 1.2
Article1 / info 1.3
Article1 / info 1.4
Article1 / info 1.5
Article1 / info 1.6
Article1 / info 1.7
Article2 / info2.1
Article2 / info2.2
Article2 / info2.3
Article2 / info2.4
Article2 / info2.5
Article 3 / info 3.1
Article 3 / info 3.2
Article 3 / info 3.3
Article 3 / info 3.4
Article 4 / info4.1
Article 4 / info4.2
Article 4 / info4.3
Article 4 / info4.4
Article 5 / info5.1
Article 5 / info5.2
Article 5 / info5.3
Article 5 / info5.4
Article 5 / info5.5
Article 5 / info5.6
Article 5 / info5.7
Le code qui suit devrait convenir :Private O As Worksheet 'déclare la variable O (onglet) Private TV As Variant 'déclare la variable TV (Tableau des Valeurs) Private Sub UserForm_Initialize() 'à l'initialisation de l'userForm Dim D As Object 'déclare la variable D (Dictionnaire) Dim I As Integer 'déclare 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 valeur 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 (les Articles) 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 Private Sub ComboBox1_Change() 'au changement dans la ComboBox1 Dim I As Integer 'déclare la variable I (Incrément) Me.ComboBox2.Clear 'vide la ComboBox2 If Me.ComboBox1.Value = "" Then Exit Sub 'si la ComboBox1 est effacée, sort de la procédure For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde) 'si la donnée en colonne 1 de TV est églale à la valeur de la ComboBox1, ajoute la donnée en colonne 2 de TV dans la ComboBox2 If TV(I, 1) = Me.ComboBox1 Then Me.ComboBox2.AddItem TV(I, 2) Next I 'prochaine ligne de la boucle End Sub