Filtrer une même colonne selon deux combobox

Fermé
spoons Messages postés 122 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 30 juin 2016 - 12 mars 2013 à 15:10
spoons Messages postés 122 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 30 juin 2016 - 15 mars 2013 à 09:35
Bonjour,
J'ai un fichier Excel dans lequel je souhaite filtrer une colonne selon deux combobox.
Mon code est le suivant :

Private Sub ComboBox1_Change()
ComboBox1.List() = Sheets("ADMIN").Range("A2:A23").Value
End Sub

Private Sub ComboBox1_Click()

Sheets("DETAIL DES REFS").Rows("1:1").AutoFilter
If ComboBox1.Value <> "Tous" Then

Sheets("DETAIL DES REFS").Range("$A$1:$AG$6923").AutoFilter Field:=14, Criteria1:= _
"ALERTE"
Sheets("DETAIL DES REFS").Range("$A$1:$AG$6923").AutoFilter Field:=12, Criteria1:=ComboBox1.Value

End If
End Sub

Private Sub ComboBox4_Change()
ComboBox4.List() = Sheets("ADMIN").Range("A2:A21").Value
End Sub

Private Sub ComboBox4_Click()
Sheets("DETAIL DES REFS").Range("$A$1:$AG$6923").AutoFilter Field:=12, Criteria1:=ComboBox3.Value, Operator:=xlAnd, Criteria2:=ComboBox4.Value
'End If
End Sub


Le problème est que ça ne marche pas, en fait excel filtre déjà selon le critère de la combobox1 puis sur le critère de la combobox4, au lieu de filtrer simultanément la colonne selon les deux critères.
Pourriez-vous me dépanner svp ?

Merci d'avance !
A voir également:

1 réponse

spoons Messages postés 122 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 30 juin 2016 35
15 mars 2013 à 09:35
J'ai trouvé une solution à mon problème, j'ai créé une listbox dont les valeurs sélectionnées s'enregistrent dans un tableau qui est ensuite utilisé comme critère dans mon filtre. Mais j'ai un autre problème, je voudrais que le filtre ne soit pas "égal à" mais "contient", ce que je n'arrive pas à coder. Si vous pouviez m'aider ce serait super !!

Voici le code :

Dim tableau(1 To 20) As Variant

nb = Sheets("ACCUEIL").ListBox1.ListCount

j = 1
For I = 0 To nb - 1

If Sheets("ACCUEIL").ListBox1.Selected(I) Then
tableau(j) = Sheets("ACCUEIL").ListBox1.List(I)
j = j + 1
End If
Next I


Sheets("DETAIL DES REFS").Rows("1:1").AutoFilter
Sheets("DETAIL DES REFS").Range("$A$1:$AK$15000").AutoFilter Field:=13, Criteria1:=tableau, Operator:=xlFilterValues


Merci d'avance !!
0