Macro filtre selon plusieurs cellules.

Résolu/Fermé
Fullreyny - 28 avril 2015 à 11:53
 Fullreyny - 28 avril 2015 à 15:48
Bonjour.

Je suis à la recherche d'une macro pour filtré selon plusieurs cellules.
Je sais le faire avec une seul cellule :
ActiveSheet.Range("$A$2:$E$10000").AutoFilter Field:=1, Criteria1:=Range("I2").Value

Mais je souhaite le faire selon plusieurs cellules ou encore mieux selon une plage de cellules

du genre :
ActiveSheet.Range("$A$2:$E$10000").AutoFilter Field:=1, Criteria1:=Range("I2").Value, Criteria2:=Range("I3").Value...
ou
ActiveSheet.Range("$A$2:$E$10000").AutoFilter Field:=1, Criteria1:=Range("I2:I20").Value

Malheureusement ce n'est pas si simple que ça ;/

Un coups de main serait le bien venu.

Merci
A voir également:

4 réponses

redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
Modifié par redaiwa le 28/04/2015 à 14:58
Salam Fullreyny.

Il suffit d'insérer un opérateur "xlAnd" ou "xlOr" comme ceci:
ActiveSheet.Range("$A$2:$E$10000").AutoFilter Field:=1, Criteria1:=Range("I2").Value, Operator:=xlOr, Criteria2:=Range("I3").Value

Essaye et dis-nous si ça marche.
"Repousse le mal par le bien; et voilà que celui avec qui tu avais une animosité devient tel un ami chaleureux" (Coran)
"Celui qui ne sait pas partager est infirme de ses émotions". (Marc Levy)
0
Génial.
Merci beaucoup Redaiwa.
Ce conseil marche super et va me servir pour bien d'autre fonction ;)
Ciao
0
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
28 avril 2015 à 15:28
Content pour toi.
Un conseil : l'enregistreur de macros est très utile pour comprendre comment construire les commandes en VB.
0
En faite il me reste un problème, ça ne fonctionne pas avec xlAnd. du coup je ne peux pas en mettre plus que 2.
0
J'ai trouvé.

ActiveSheet.Range("$A$1:$I$558").AutoFilter Field:=1, Criteria1:=Array( _
Range("I2").Value, Range("I3").Value, Range("I4").Value, Range("I5").Value, Range("I7").Value, Range("I8").Value, Range("I9").Value, Range("I10").Value, ""), Operator:=xlFilterValues

Redaiwa
Merci pour ton aide et merci pour ta petite phrase (enregistreur de macro) qui m'a ouvert l'esprit.

Ciao
0