Microsoft 365 Macro à 2 critères pour filtre auto (valeur cellule + Vide)

SEBEST

XLDnaute Nouveau
Bonjour à tous,

J'ai besoin de votre aide pour réussir une macro pour effectuer un filtre auto à deux critères en cliquant sur un bouton
quand il s'agit d'un nom fixe pas de soucis avec Aray + "="
mais comme la valeur de la cellule change, à chaque fois ca me prend soit la valeur, soit les cellules vide mais pas les deux...

voici ma macro :

Sub filtre_2_criteres_vide_et_Manager1()
'
' filtre_2_criteres_vide_et_Manager1 Macro
'
ActiveSheet.Range("A7:Z5000").AutoFilter Field:=2, Criteria1:=Array("Menu!Manager1", "="), Operator:=xlFilterValues

End Sub

malheureusement prends que le filtre "vide" et si j'inverse l'ordre ca prends la cellule mais pas le vide
je vous mets un fichier en pièce jointe pour mieux comprendre

merci d'avance à tous pour votre aide

Sébastien
 

Pièces jointes

  • TEST .xlsm
    50.3 KB · Affichages: 15

Staple1600

XLDnaute Barbatruc
Bonjour

Test OK chez moi
VB:
Sub test_ok()
Dim vArr(1 To 2) As String
vArr(1) = "toto"
vArr(2) = vbNullString
Range("$A$1:$L$24").AutoFilter Field:=2, Criteria1:=vArr, Operator:=xlFilterValues
End Sub
Je te laisse faire les adaptations idoines sur ton fichier.
 

SEBEST

XLDnaute Nouveau
Hello Staple,

Merci pour ton retour, mais ca ne fonctionne pas, car je n'ai pas un nom fixe comme "toto"
je vais chercher une cellule sur une autre feuille (feuille "menu" et cellule "Manager1" et quand je test ta macro, il prends en compte que le vide sur mon filtre auto, mais pas le 2eme critère

si tu vois comment régler mon soucis

Merci d'avance pour ton aide
 

Staple1600

XLDnaute Barbatruc
Re

SEBEST
Il ne faut pas lire mon code VBA dans mes messages
Staple¸ suçotant son petit poisson(*)¸ à dit:
Je te laisse faire les adaptations idoines sur ton fichier.
Donc si tu n'as pas adapté mon code en conséquence, évidemment que cela ne marche pas!

(*) mon petit poisson en chocolat (Pâques oblige)

EDITION: Donc avec l'adaptation effectuée, cela fonctionne
VB:
Sub test_ok_bis()
Dim vArr(1 To 2) As String
vArr(1) = [Manager1] ' cellule nommée
vArr(2) = vbNullString
Range("$A$1:$L$24").AutoFilter Field:=2, Criteria1:=vArr, Operator:=xlFilterValues
End Sub
Je te laisse faire l'autre adaptation. ;)
 

Discussions similaires

Statistiques des forums

Discussions
314 749
Messages
2 112 469
Membres
111 560
dernier inscrit
Fanomezantsoa