Mettre une variable critere filtre avancé [Résolu/Fermé]

Signaler
Messages postés
31
Date d'inscription
jeudi 27 juillet 2017
Statut
Membre
Dernière intervention
22 juillet 2020
-
Messages postés
31
Date d'inscription
jeudi 27 juillet 2017
Statut
Membre
Dernière intervention
22 juillet 2020
-
Bonjour,

J'aimerai intégrer une variable dans le code du filtre avancé :


Workbooks("TEST.xlsx").Sheets("Feuil1").Range("A4:AN1048576").AdvancedFilter _
        Action:=xlFilterCopy, CriteriaRange:=Range("A1:A4"), CopyToRange:=Range( _
        "A8"), Unique:=False



Ainsi au lieu de CriteriaRange:=Range("A1:A4"), je voudrai quelques choses de ce style CriteriaRange:=mavariable


Savez vous comment je peux faire ?


Merci d'avance

2 réponses

Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
617
Bonjour,

Il suffit de définir une variable objet de type Range, comme ceci

Dim plage_critère as Range

set plage_critère = Range("A1:A4")
Workbooks("TEST.xlsx").Sheets("Feuil1").Range("A4:AN1048576").AdvancedFilter _
Action:=xlFilterCopy, CriteriaRange:=plage_critère, CopyToRange:=Range( _
"A8"), Unique:=False

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
31
Date d'inscription
jeudi 27 juillet 2017
Statut
Membre
Dernière intervention
22 juillet 2020

Merci Thev de votre réponse,


Je me suis rendu compte que je m'étais mal expliqué. Je souhaite renseigner directement un critère ou une variable au lieu d'une plage de cellule.

Comme par exemple :

Dim ma_variable as Variant

ma_variable = "uncritère"
Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
617
Dans ce cas, il ne faut pas utiliser la méthode "AdvancedFilter" mais "AutoFilter"' .
Ci-dessous exemple avec l'opérateur "=":
   
Dim ma_variable As Variant
    
    ma_variable = "uncritère"
    With Workbooks("TEST.xlsx").Sheets("Feuil1")
        If Not .AutoFilterMode Then .Range("A4:AN1048576").AutoFilter
        .Range("A4:AN1048576").AutoFilter Field:=1, Criteria1:="=" & ma_variable
        '............................
        
        .AutoFilterMode = False 'suppression mode filtre
    End With
 
Messages postés
31
Date d'inscription
jeudi 27 juillet 2017
Statut
Membre
Dernière intervention
22 juillet 2020

Bonjour,


Merci beaucoup pour votre réponse, c'est ce qu'il me fallait.