Filtre contient "ou" 4 critères

Bonjour les forumeurs,

J'ai cherché sur le forum, mais je n'ai pas trouvé ce que je voulais.

Je n'ai pas de fichier à vous proposer pour étayer ma demande (je suis à la maison et le fichier est....au travail), mais je cherche à connaître la (les ?) ligne(s) de code vba me permettant de faire un filtre sur une colonne avec 4 critères au choix.

Je m'explique, j'ai une colonne dans un tableau où je souhaite filtrer les lignes qui contiennent les termes BMS ou Eur ou Cult ou Mses.

Les filtres élaborés ne permettant que 2 choix dans le ou, je me retrouve bloqué.

Pouvez-vous me venir en aide ?

Cordialement,

Bonjour

Non le filtre avancé permet autant de OU que l'on veut...

Le filtre auto aussi sous réserve que le OU concerne une même colonne

Bonjour

Non le filtre avancé permet autant de OU que l'on veut...

Le filtre auto aussi sous réserve que le OU concerne une même colonne

Bonjour et merci de prendre le temps,

Comment ça ? Je ne parviens pas à écrire le code.

Bonjour,

Voici un exemple qui illustre les propos de Chris

Bonjour,

Si je comprends bien je dois utiliser cette partie ? :

ActiveSheet.ListObjects(1).Range.AdvancedFilter Action:=xlFilterInPlace, _

CriteriaRange:=Range("A1").CurrentRegion, Unique:=False

Par contre, dans mon travail, je dois chercher non pas une valeur absolue, mais par exemple BMS dans 50/5001BMS.

Comment je fais pour chercher *BMS* ?

RE à tous

Par défaut le filtre avancé utilise contient...

Merci @chris78,

Je vais essayer de me dépatouiller avec ça.

Je passerais en résolu dès que j'aurais réussi à faire ma macro.

Peut-être que le code pourra servir à quelqu'un.

Bon....,

J'arrive à rien, car en fait, ma liste de critères se trouve dans un fichier et le filtre à faire se trouve dans un autre.

En fait j'ouvre le fichier "reprises Emb" et je lance la macro.

Je sélectionne le fichier à ouvrir et l'onglet à sélectionner ici l'onglet 1 pour gagner du temps,

et ensuite, je veux appliquer mes filtres.

Je vous joint les 2 fichiers....si quelqu'un a la patience de regarder.

9reprises-emb.xlsm (24.51 Ko)

Bonjour

Que ce soit les filtres auto ou les filtres avancés, cela ne marche que sur des listes de données pas sur des tableaux avec des en-têtes sur plusieurs lignes, des en-têtes avec un nom en plusieurs exemplaires...

Par ailleurs une liste de critères doit avoir un titre identique à celui de la colonne où les critères vont s'appliquer : tu n'as pas de titre

ActiveSheet.ListObjects(1) considère que la zone à filtrer est un tableau structuré : tu n'en as pas...

Re,

Ok, mais du coup, quelle alternative s'offre à moi ? Comment puis-je contourner ce problème ?

RE

Il faudrait peut-être revoir ta structure...

Mais déjà préciser quelle colonne tu veux filtrer car sans titre aux critères on doit deviner...

Re,

En fait dans le fichier transporteur (celui qui s'appelle XPO...etc) je filtre sur la colonne tournée sur les tournées qui contiennent BMS ou Eur ou Cult ou Mses.

RE

Tes textes n'étant pas des mots parmi d'autres mais des sous-chaînes, dans la liste des critères

à titrer Tournée,

à mettre sous de forme de tableau nommée TCriteres,

encadre chaque valeur par *

*BMS*

*Cult*

etc

et le code

ActiveSheet.Range("A5:L1000000").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=ThisWorkbook.Worksheets("Feuil1").ListObjects("TCriteres").Range, Unique:=False

RE

Tes textes n'étant pas des mots parmi d'autres mais des sous-chaînes, dans la liste des critères

à titrer Tournée,

à mettre sous de forme de tableau nommée TCriteres,

encadre chaque valeur par *

*BMS*

*Cult*

etc

et le code

ActiveSheet.Range("A5:L1000000").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=ThisWorkbook.Worksheets("Feuil1").ListObjects("TCriteres").Range, Unique:=False

Re,

Merci de ton aide précieuse. Une question encore. Est-ce que ce tableau "TCriteres" peut être dans mon fichier de départ (celui qui se nomme "Reprises Emb") ? ou alors il doit nécessairement se trouver dans le fichier xpo ?

Le plus simple = recopier cette liste par une fonction dans la feuille de résultats attendus et masquer les lignes.

Autre solution = faire une programmation spécifique.

RE à tous

Une question encore. Est-ce que ce tableau "TCriteres" peut être dans mon fichier de départ (celui qui se nomme "Reprises Emb") ? ou alors il doit nécessairement se trouver dans le fichier xpo ?

Si tu avais bien regardé le code tu verrais que je distingue bien deux classeurs : celui qui contient la macro (ThisWorkbook) et celui que l'on ouvre (ActiveSheet).

Si j'ai bien compris on filtre celui que l'on ouvre avec les critères de celui qui contient la macro.

Re,

En fait, j'ai bien vu le code, mais c'est que je le trouve pas facile à comprendre. C'est simplement ça.

Et du coup oui, tu as parfaitement compris.

Re re re re re,

J'ai modifié mon code :

a = Sheets(Ongletrecherche).Range("5:5").Find(What:="Tournée", after:=Cells(5, 5), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).column
ActiveSheet.Range(Cells(5, 1), Cells(a, 1)).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Workbooks(Monfichier).Worksheets("Feuil1").ListObjects("TCriteres").Range, Unique:=False

Mais j'ai une erreur : erreur d'execution 9 : L'indice n'appartient pas à la sélection.

J'ai bien mis sous forme de tableau en U1 à U5 dans l'onglet 1 de mon fichier contenant la macro ma liste nomée Tcriteres.

Est-ce normal ?

RE

Si je comprends bien tu ne sais pas dans quelle colonne figure Tournée ?

D'une part on ne filtre pas une ligne mais l'ensemble de lignes

et d'autre part si les critères sont bien dans le classeur qui contient la macro laisse ThisWorkbook

donc

ActiveSheet.Range(Cells(5, 1), Cells(a, 10000000)).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=ThisWorkbook.Worksheets("Feuil1").ListObjects("TCriteres").Range, Unique:=False

Re,

Ca fonctionne presque. Ca me filtre bien, mais ca m'affiche des lignes où il le critère est présent, et certaines ou c'est vide.

Du coup, je pose une question supplémentaire : Sur quelle colonne le filtre se fait ? sur la dernière colonne du tableau sélectionnée dans le filtre ?

Rechercher des sujets similaires à "filtre contient criteres"