Macro excel: pb de copier/coller dans filtre [Résolu/Fermé]

Signaler
-
 Léon -
Bonjour,


Je bloque sur une commande de macro excel, je pense que c'est tout bête mais impossible de trouver: ma macro doit copier la cellule d'une feuille, et la copier dans le filtre "contient" d'une autre feuille (la base de donnée)

A la première exécution ça marche, mais quand je change la valeur de la cellule de départ, pour que la macro aille donc chercher celle là dans l'autre onglet, je me retrouve avec la première

J'ai essayé de modifier le code en renommant ma cellule, en remettant même le chemin d'accès, mais j'ai l'impression qu'il n'est pas possible d'inclure une variable dans une commande de filtre... Je vois vraiment pas comment contourner le truc.

Voila le code vba initial au cas où:
Range("B2").Select
ActiveCell.FormulaR1C1 = "draguignan"
Sheets("Base UU").Select
ActiveSheet.Range("$A$1:$J$36612").AutoFilter Field:=5, Criteria1:= _
"=*draguignan*", Operator:=xlAnd


Merci d'avance de vos réponse!

5 réponses

Messages postés
1513
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
120
Bonjour,

Il est tout à fait possible d'introduire une variable mais la ou il faut l'introduire est :

actuellement ton code :
ActiveSheet.Range("$A$1:$J$36612").AutoFilter Field:=5, Criteria1:= _
"=*draguignan*", Operator:=xlAnd

signifie qu'il fltre sur draguignan.

rentres une varaible du style :
filtre= sheets("feuil1").cells(1,1) 'il faut que tu mets la cellule qui contient draguignan ou autre cells(ligne,colonne) et modifies le nom de feuille et réécris ton code comme ca :

ActiveSheet.Range("$A$1:$J$36612").AutoFilter Field:=5, Criteria1:= _
"=" & filtre, Operator:=xlAnd
Merci pour ta réponse, j'ai essayé ce code mais ça ne marche toujours pas, le critère de recherche dans le filtre devient "FALSE" et la macro se bloque...
Messages postés
1513
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
120
j'ai fait une erreur dans l'écriture, essaie comme ca :

ActiveSheet.Range("$A$1:$J$36612").AutoFilter Field:=5, Criteria1:= filtre, Operator:=xlAnd
C'est bon ça marche très bien en définissant la variable avant la commande du filtre,

Merci beaucoup pour tes conseils!
Et où est-ce que tu rentres la définition de ta variable filtre=sheets("feuille1") etc, etc ?