Filtre suite à choix dans une combobox

helene51

XLDnaute Junior
Bonjour le forum,

J'avance tranquillement dans mes travaux VBA mais les embuches sont nombreuses ... je n'ai pas un niveau très élevé et c'est pour cela que je vous sollicite.

J'ai fait de nombreuses recherches sur le forum sans trouver réponse à ma question :

J'ai un tableau sur une feuille Excel de A:AE, la longueur des colonnes est variable.
A l'aide d'une combobox je choisi un élément correspondant à une donnée de la colonne A. Je souhaite ensuite charger ma combobox2 avec les données de la colonne C, le tableau filtré avec la sélection de ma première combobox1.
Je bloque sur le code, alors qu'il me semble que c'est assez simple.
Voilà ce que j'ai pour le moment :

Code:
Private Sub UserForm_Initialize()
Dim i As Byte, k As Byte
Dim temp As String
Sheets("Donnees brutes").Select
For j = 2 To Range("a65536").End(xlUp).Row
    ComboBox1 = Range("a" & j)
    If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Range("a" & j)
    With ComboBox1
    For i = 0 To .ListCount - 1
        For k = 0 To .ListCount - 1
            If .List(i) < .List(k) Then
            temp = .List(i)
            .List(i) = .List(k)
            .List(k) = temp
            End If
        Next k
    Next i
    End With
Next j

End Sub


Private Sub ComboBox1_Change()
Dim i As Byte, k As Byte
Dim temp As String
'Filtrer mon tableau
Sheets("Donnees brutes").Range("A1:AE1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=ComboBox1.Value
'Charger mon combobox2
Sheets("Donnees brutes").Select
For j = 2 To Range("c65536").End(xlUp).Row
    ComboBox2 = Range("c" & j)
    If ComboBox2.ListIndex = -1 Then ComboBox1.AddItem Range("c" & j)
    With ComboBox2
    For i = 0 To .ListCount - 1
        For k = 0 To .ListCount - 1
            If .List(i) < .List(k) Then
            temp = .List(i)
            .List(i) = .List(k)
            .List(k) = temp
            End If
        Next k
    Next i
    End With
Next j
End Sub

Avec ce code, le filtre ne se réalise même pas. Qu'est-ce qui cloche ?
Y a-t-il d'autres fils sur ce sujet ?

Merci.
 

helene51

XLDnaute Junior
Re : Filtre suite à choix dans une combobox

Re,

C'est bon pour le tri tout fonctionne.

Je n'avais pas fait attention ce matin, mais dans le fichier que tu m'as renvoyé Lii, il y a une chose que j'aimerai modifier. Lorsque je fais mon choix dans la combobox2, ça ne garde pas en compte mon choix de la combobox1.
Je m'explique : si je choisi en 1, "GS1 32" et en 2, "DS" ; j'ai d'affiché dans mon tableau les résultats pour le couple "GS1 32 et DS" mais aussi "GS1 34 et DS" alors que ça n'est pas mon souhait de départ !
Comment conserver le premier choix (combobox1 et tri réalisé) et en deuxieme ne masquer que les cellules ne contenant pas ma valeur choisie dans le combobox2 ?
 

helene51

XLDnaute Junior
Re : Filtre suite à choix dans une combobox

Bonjour le forum,

Concernant mon dernier message, je n'ai pas encore trouvé la solution.
Je pense pour y arriver devoir modifier le code suivant mais je ne sais pas comment !

Code:
Private Sub ComboBox2_Change()
  Application.ScreenUpdating = False
  Sheets("Donnees brutes").Range("A2:A" & ActiveSheet.UsedRange.Rows.Count).EntireRow.Hidden = False
  For Each Cel In Sheets("Donnees brutes").Range("C2:C" & ActiveSheet.UsedRange.Rows.Count)
    If Cel.Value <> ComboBox2.Value [B]And Cel.Value <> ComboBox1.Value [/B]Then Cel.EntireRow.Hidden = True
  Next Cel
  Application.ScreenUpdating = True
End Sub

J'ai essayé en ajoutant le code en gras mais ça ne change rien.
Pourquoi ne puis-je pas conserver mon premier filtre et y ajouter le second. Actuellement c'est comme si ça réinitialisait tout.
 

Discussions similaires

Réponses
11
Affichages
354
Réponses
4
Affichages
234

Statistiques des forums

Discussions
312 504
Messages
2 089 089
Membres
104 027
dernier inscrit
Luc ECODIS