Posez votre question Signaler

VBA Combobox liée à une Listbox [Résolu]

Julistage 17Messages postés 20 septembre 2010Date d'inscription 6 décembre 2010Dernière intervention - Dernière réponse le 15 nov. 2010 à 14:13
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.
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 ! :)
Lire la suite 

VBA Combobox liée à une Listbox »

4 réponses
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.

 

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.
Ajouter un commentaire
Réponse
+0
moins plus
Ok,

Tant mieux, Kennedy, (euh....)

Bonne journée
Ajouter un commentaire
Ce document intitulé « VBA Combobox liée à une Listbox » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?