OVH Cloud OVH Cloud

Filtre personnalisé

4 réponses
Avatar
Alain
Bonjour.
Je fais des tests avec le filtre personnalisé, j'essaye de faire une macro
du genre.
Selection.AutoFilter Field:=5, Criteria1:=Label20, Operator:=xlOr,
Criteria2:=Label21, Operator:=xlOr, Criteria3:=Label22

Mais apparemment il n'accepte que 2 possibilités, est-ce un problème
d'écriture ?
Merci beaucoup à tous
Alain

4 réponses

Avatar
AV
Mais apparemment il n'accepte que 2 possibilités, est-ce un problème
d'écriture


Le filtre personalisé est limité à 2 critères
Il faut passer par un filtre élaboré !

AV

Avatar
Alain
Merci beaucoup, je pensai que par VBA...
Bonne journée.
Alain

"AV" a écrit dans le message de
news:
Mais apparemment il n'accepte que 2 possibilités, est-ce un problème
d'écriture


Le filtre personalisé est limité à 2 critères
Il faut passer par un filtre élaboré !

AV





Avatar
AV
Merci beaucoup, je pensai que par VBA...


Ben oui, on peut...
Une soluce : insérer une feuille > y établir la zone de critère > filtrer >
supprimer la feuille insérée
En supposant (à adapter) que la plage à filtrer est la colonne D de la feuille
"Feuil1" en fonction des 3 critères que tu auras récupéré sous forme des
variables Label20, Label21, Label22

Sub zzzz_Filtre()
Application.ScreenUpdating = False
Sheets.Add.Name = "temp"
[A2] = "=or(Feuil1!E2=""" & Label20 & """,Feuil1!E2=""" & Label21 &
""",Feuil1!E2=""" & Label22 & """)"
Sheets("Feuil1").Columns("E:E").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:= _
Sheets("temp").Range("A1:A2"), Unique:úlse
Application.DisplayAlerts = False
Sheets("temp").Delete
Application.DisplayAlerts = True
Range("E1").Select
End Sub

Attention aux guillemets !
AV

Avatar
Alain
Merci beaucoup Alain tout baigne...
Salutations.
Alain

"AV" a écrit dans le message de
news:%
Merci beaucoup, je pensai que par VBA...


Ben oui, on peut...
Une soluce : insérer une feuille > y établir la zone de critère > filtrer

supprimer la feuille insérée
En supposant (à adapter) que la plage à filtrer est la colonne D de la
feuille

"Feuil1" en fonction des 3 critères que tu auras récupéré sous forme des
variables Label20, Label21, Label22

Sub zzzz_Filtre()
Application.ScreenUpdating = False
Sheets.Add.Name = "temp"
[A2] = "=or(Feuil1!E2=""" & Label20 & """,Feuil1!E2=""" & Label21 &
""",Feuil1!E2=""" & Label22 & """)"
Sheets("Feuil1").Columns("E:E").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:= _
Sheets("temp").Range("A1:A2"), Unique:úlse
Application.DisplayAlerts = False
Sheets("temp").Delete
Application.DisplayAlerts = True
Range("E1").Select
End Sub

Attention aux guillemets !
AV