Filtre avec 3 critères différents de

Bonjour,

Je souhaiterai mettre en place un filtre à plusieurs critères (>3) sur une même colonne, mais ce ne seront pas des critères "=" mais "<>".

Je sais qu'on ne peux avoir que deux filtres (Criteria1 et Criteria2), donc ce que que je cherche à faire sous cette forme, cela ne fonctionnera pas :

ActiveSheet.Range("$A$1:$B$129").AutoFilter Field:=1, Criteria1:="<>A01*", Operator:=xlAnd, Criteria2:="<>B01*", Operator:=xlAnd, Criteria3:="<>C01*"

Par contre, j'ai trouvé à différents endroit que l'on pouvait passer par un tableau où l'on liste nos critères, exemple fonctionnant (je renseigne dans ma liste le nom des valeurs en entier) :

ActiveSheet.Range("$A$1:$B$129").AutoFilter Field:=1, Criteria1:=Array("A007", "B007", "C007"), Operator:=xlFilterValues

Par contre, dans cet exemple où je liste des valeurs commençant par, cela ne fonctionne plus :

ActiveSheet.Range("$A$1:$B$129").AutoFilter Field:=1, Criteria1:=Array("A00*", "B00*", "C00*"), Operator:=xlFilterValues

Et en plus de ça, ce que je souhaites à faire, c'est une liste de critères qui ne commencent pas par (ça fonctionne encore moins ) :

ActiveSheet.Range("$A$1:$B$129").AutoFilter Field:=1, Criteria1:=Array("<>A00*", "<>B00*", "<>C00*"), Operator:=xlFilterValues

Avez-vous une idée pour m'aider ?

En vous remerciant...

misterg94

1test.xlsx (9.32 Ko)

Bonjour,

exemple

Sub filtrer()
    Range("Tableau1[[#All],[ID]]").AdvancedFilter Action:=xlFilterInPlace, _
        CriteriaRange:=Range("A1").CurrentRegion, Unique:=False
End Sub
3test.xlsm (15.78 Ko)

Range("A1").CurrentRegionte permet de compléter les critères

ET = sur la même ligne

OU = sur des lignes différentes

Dans tous les cas la première ligne doit être exactement conforme à l'en-tête de colonne

Bonjour,

Merci pour cette première réponse, malheureusement je souhaite intégrer ça dans une macro.

Existe-t-il un moyen de ne pas avoir mais les critères dans la cellule A1 mais dans une variable ?

Par exemple :

Sub filtrer()
    Dim criteres as string

    'je ne sais pas comment initialiser cette variable criteres
    var = "<>A01*,<>A02*"

    Range("Tableau1[[#All],[ID]]").AdvancedFilter Action:=xlFilterInPlace, _
        CriteriaRange:=criteres, Unique:=False
End Sub

Et sinon je n'ai pas compris ce passe :

ET = sur la même ligne

OU = sur des lignes différentes

J'ai essayé de mettre "ET("<>A01*";"<>A02*") dans A2, mais je pense pas que ce soit ça...

Merci encore.

misterg94

Merci pour cette première réponse, malheureusement je souhaite intégrer ça dans une macro.

Existe-t-il un moyen de ne pas avoir mais les critères dans la cellule A1 mais dans une variable ?

peut-être, mais j'ai l'habitude mettre tous les paramètres dans une feuille, cela me parait plus souple ...

attendons dans ce cas d'autres contributeurs ...

Et sinon je n'ai pas compris ce passe :

ET = sur la même ligne

OU = sur des lignes différentes

J'ai essayé de mettre "ET("<>A01*";"<>A02*") dans A2, mais je pense pas que ce soit ça...

Ce que je veux dire :

le ET s'écrit dans ma méthode comme ceci : on répète l'en-tête et on met les valeurs en dessous en ligne :

capture d ecran 408

le OU s'écrit sur 2 lignes comme ceci :

capture d ecran 409

D'accord merci pour ses éclaircissements.

En effet, on va voir si quelqu'un connait un moyen sans passer par une saisie dans une cellule.

En effet, on va voir si quelqu'un connait un moyen sans passer par une saisie dans une cellule.

tu peux aussi mettre les paramètres en cellule et cacher les lignes
Rechercher des sujets similaires à "filtre criteres differents"