VBA Combobox liée à une Listbox
Résolu
Julistage
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
cousinhub29 Messages postés 1074 Date d'inscription Statut Membre Dernière intervention -
cousinhub29 Messages postés 1074 Date d'inscription Statut Membre Dernière intervention -
Bonsoir à tous !
Voilà comme l'indique le titre de mon post, je souhaiterais lier une selection faite dans une combobox avec une liste d'item lui correspondant. Du style: La combobox contient une catégorie de produits, et la listbox contient la sous-catégorie.
Voilà ce que j'ai commencé à faire... Mais ça marche pas trop. ça va chercher des données, mais ce ne sont pas les bonnes...
En gros dans la combobox, se trouve des éléments se trouvant dans la colonne A d'un fichier excel, et dans la listbox, il doit apparaitre des éléments se trouvants dans la colonne C...
Voilà mon bout de code, si quelqu'un voit une erreur s'il vous plait? Mes sous catégories sont fausses au moment de la selection de la catégorie via la combobox.
Merci d'avance, Bonne soirée ! :)
Voilà comme l'indique le titre de mon post, je souhaiterais lier une selection faite dans une combobox avec une liste d'item lui correspondant. Du style: La combobox contient une catégorie de produits, et la listbox contient la sous-catégorie.
Voilà ce que j'ai commencé à faire... Mais ça marche pas trop. ça va chercher des données, mais ce ne sont pas les bonnes...
En gros dans la combobox, se trouve des éléments se trouvant dans la colonne A d'un fichier excel, et dans la listbox, il doit apparaitre des éléments se trouvants dans la colonne C...
Voilà mon bout de code, si quelqu'un voit une erreur s'il vous plait? Mes sous catégories sont fausses au moment de la selection de la catégorie via la combobox.
Private Sub Userform_Activate() .......................... .......................... .......................... 'Récupère les données de la colonne A... For j = 1 To Range("A65536").End(xlUp).Row ComboBox3 = Range("A" & j) '...et filtre les doublons If ComboBox3.ListInde x = -1 Then ComboBox3.AddItem Range("A" & j) Next j End sub Private Sub ComboBox3_Change() Dim j As Integer Me.ListSources.Clear For j = 1 To Range("C65536").End(xlUp).Row If Cells(j, 1) = ComboBox3.Value Then Workbooks("TablesCesarv1.0.xls").Activate Worksheets("Sheet1").Activate Me.ListSources.AddItem Range("C" & j).Value End If Next j End Sub
Merci d'avance, Bonne soirée ! :)
A voir également:
- Combobox vba rowsource
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
4 réponses
Bonjour,
Je ne comprends par pourquoi tu alimentes ta ListBox à partir d'un autre fichier, alors que tu alimentes ta ComboBox à partir du fichier actif...
De plus, tu détermines la dernière ligne de la colonne C du fichier actif, et tu récupères donc les données de l'autre fichier????
Tu ne peux pas mettre toutes les données dans le même fichier?
Est-ce que les données de l'autre fichier, en colonne C, correspondent aux mêmes lignes que les données colonne A du fichier actif?
Bref, je pense que la meilleure méthode serait de regrouper les 2 lignes dans une feuille bien distincte...
Mais sans connaître les structures de tes 2 fichiers, difficiles d'en dire plus...
Bon courage
Je ne comprends par pourquoi tu alimentes ta ListBox à partir d'un autre fichier, alors que tu alimentes ta ComboBox à partir du fichier actif...
De plus, tu détermines la dernière ligne de la colonne C du fichier actif, et tu récupères donc les données de l'autre fichier????
Tu ne peux pas mettre toutes les données dans le même fichier?
Est-ce que les données de l'autre fichier, en colonne C, correspondent aux mêmes lignes que les données colonne A du fichier actif?
Bref, je pense que la meilleure méthode serait de regrouper les 2 lignes dans une feuille bien distincte...
Mais sans connaître les structures de tes 2 fichiers, difficiles d'en dire plus...
Bon courage
Bonjour Consinhub. :) Merci de t'être penché sur mon problème. J'ai résolu mon problème. En fait mes deux colonnes sont bien dans le même fichier, juste je n'ai pas penser à le préciser dans mon code.
Voilà un autre moyen d'arriver au résultat escompté. Le bout de code que j'ai présenté marche aussi. J'avais un soucis de tri alphabétique qui me faussait l'ensemble de la table. J'ai modifié ce problème et ça marche maintenant très bien.
Bonne journée à tous.
Private Sub Userform_Activate() .......................... .......................... .......................... 'Récupère les données de la colonne A... For j = 1 To Range("A65536").End(xlUp).Row ComboBox3 = Range("A" & j) '...et filtre les doublons If ComboBox3.ListInde x = -1 Then ComboBox3.AddItem Range("A" & j) Next j End sub Private Sub ComboBox3_Change() Dim j As Integer Me.ListSources.Clear For j = 1 To Range("C65536").End(xlUp).Row If Cells(j, 1) = ComboBox3.Value Then Me.ListSources.AddItem Workbooks("TablesCesarv1.0.xls").sheets("Sheet1").cells(j,3).value End If Next j End Sub
Voilà un autre moyen d'arriver au résultat escompté. Le bout de code que j'ai présenté marche aussi. J'avais un soucis de tri alphabétique qui me faussait l'ensemble de la table. J'ai modifié ce problème et ça marche maintenant très bien.
Bonne journée à tous.