Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

vba filtre automatique personalisé avec contient

1 réponse
Avatar
tryaok
Bonjour,
Je cherche actuellement à créer une macro qui lance le filtre automatique personnalisé avec contient et comme argument la valeur d'une cellule.

Exemple :

Dim Crit
Crit = Range("C11").Value
ActiveSheet.Range("$A$1:$A$6").AutoFilter Field:=1, Criteria1:=Crit

C11 contient la valeur que je souhaite passer en paramètre du filtre textuel contient.

Le problème est que le code ci dessus se contente de vérifier une égalité alors que je souhaite que le filtre recherche dans le contenu des cellules une certaine valeur. Si j'applique les asterix * afin de d'utiliser le filtre textuel contient cela me renvoit une erreur de syntaxe.

ActiveSheet.Range("$A$1:$A$6").AutoFilter Field:=1, Criteria1:=*Crit*

J'ai déjà essayer pas mal de syntaxe différente mais vu que je débute en vba c'est loin d'être évident :).

S'il est possible aussi de ne pas utiliser de variable est de rentrer directement l'adresse d'une cellule je suis partant aussi, j'ai essayé mais j'ai juste réussi à filtrer avec l'adresse de la cellule et non son contenu.

Merci d'avance

1 réponse

Avatar
isabelle
bonjour tryaok,

ActiveSheet.Range("$A$1:$A$6").AutoFilter Field:=1, Criteria1:="*" &
Crit & "*"

isabelle

tryaok a écrit :
Bonjour,
Je cherche actuellement à créer une macro qui lance le filtre automatique
personnalisé avec contient et comme argument la valeur d'une cellule.

Exemple :

Dim Crit
Crit = Range("C11").Value
ActiveSheet.Range("$A$1:$A$6").AutoFilter Field:=1, Criteria1:=Crit

C11 contient la valeur que je souhaite passer en paramètre du filtre textuel
contient.

Le problème est que le code ci dessus se contente de vérifier une égalité alors
que je souhaite que le filtre recherche dans le contenu des cellules une
certaine valeur. Si j'applique les asterix * afin de d'utiliser le filtre
textuel contient cela me renvoit une erreur de syntaxe.

ActiveSheet.Range("$A$1:$A$6").AutoFilter Field:=1, Criteria1:=*Crit*

J'ai déjà essayer pas mal de syntaxe différente mais vu que je débute en vba
c'est loin d'être évident :).

S'il est possible aussi de ne pas utiliser de variable est de rentrer
directement l'adresse d'une cellule je suis partant aussi, j'ai essayé mais j'ai
juste réussi à filtrer avec l'adresse de la cellule et non son contenu.

Merci d'avance