Syntaxe VBA pour filtre "CONTIENT"

buji_ang

XLDnaute Nouveau
Je souhaite faire une macro pour réaliser un filtre.
Le filtre devra garder les cellules contenant un texte (variable, ecrit dans la cellule (1,6))

Pour commencer l'enregistreur de macro m'a donné cela :

Sub Macro1()

ActiveSheet.Range("$A$1:$C$4129").AutoFilter Field:=1, Criteria1:= _
"=*toto*", Operator:=xlAnd

End Sub

Ce qui filtre les lignes contenant "toto"
Mais moi je voudrais que ce texte soit variable, qu'il aille chercher ce qui est écrit dans une cellule.

A la place de "=*toto*" J'ai essayé :
=*cells(1,6)* mais ca n'accepte pas le texte

La je suis un peu bloque.
Quelqu'un aurait il une idee, voire la solution?
Merci
Bonne journee
 

julien03

XLDnaute Nouveau
Re : Syntaxe VBA pour filtre "CONTIENT"

Bonjour,

essaye ainsi :
Code:
ActiveSheet.Range("$A$1:$C$4129").AutoFilter Field:=1, Criteria1:= _
"=*" & Cells(1,1) & "*", Operator:=xlAnd

bonne journée


bonjour,
en fait à partir d'un fichier excel je crée deux feuilles dans la première j'ai une liste de numéros avec une grosse volumétrie, dans la deuxième une base de donnée contenant elle aussi des numéros mais avec une volumétrie moins importante. alors dans la deuxième feuille je crée un champ "résultat" ; je lance par la suite l'enregistrement de ma macro. Dans la première cellule de mon champ "résultat" je rentre ma formule "RECHERCHEV" avec pour matrice la colonne qui se trouve dans la première feuille avec une plus grande volumétrie de numéros. j'obtient bien des résultat dans ma colonne "resultats" ensuite j'effectue un filtre pour n'avoir que les numéros trouvés par la fonction; ce qui fonctionne aussi parfaitement. j'arrête ainsi mon enregistrement. Cependant quand dans la première feuille je rentre une liste de numéros différentes de la précédente, et que je lance à nouveau l'exécution de ma macro elle trouve bien des numéros mais il ne s'affiche pas, pour se faire il faut appliquer un filtre manuellement sur la colonne "resultat" pour afficher les numéros trouvés. je me suis rendu dans le code VBA de ma macro et voici la partie du code qui effectue le filtre:

ActiveSheet.Range("$Y$1:$Y$2120").AutoFilter Field:=1, Criteria1:= _
"=numéro_trouvé", "=numéro_trouvé" Operator:=xlOr, Criteria2:="=resultats"


je pense que cette partie du code reste figée sur la liste précédente raison pour laquelle, elle n'effectue pas le filtre correctement sur une liste différente. merci déjà pour votre réaction précédente. je reste à toute disposition pour apporter plus de précision si besoin est. merci d'avance
 

Openmindz

XLDnaute Nouveau
Salut, j'ai un problème similaire dans une macro qui inclut un filtre textuel "contient". Lors de l'enregistrement de la Macro, le code inséré est celui ci :

ActiveSheet.Range("$A$1:$AK$2750").AutoFilter Field:=26, Criteria1:= _
"=*PDB*", Operator:=xlAnd

Mais lorsque je lance la Macro une fois enregistrée, le filtre ne se fait pas sur la colonne en question.
Qu'est ce que j'ai loupé comme épisode ? Merci
 

Phil69970

XLDnaute Barbatruc
Bonjour @Openmindz

Au lieu de déterrer un post de 2010 ouvre ton propre post !
1700130287857.png
 

Openmindz

XLDnaute Nouveau
Salut, j'ai un problème similaire dans une macro qui inclut un filtre textuel "contient". Lors de l'enregistrement de la Macro, le code inséré est celui ci :

ActiveSheet.Range("$A$1:$AK$2750").AutoFilter Field:=26, Criteria1:= _
"=*PDB*", Operator:=xlAnd

Mais lorsque je lance la Macro une fois enregistrée, le filtre ne se fait pas sur la colonne en question.
Qu'est ce que j'ai loupé comme épisode ? Merci
Oups .... Merci
 

Discussions similaires

Réponses
2
Affichages
309

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA