Excel VBA et macro pour filtre automatique

Fermé
tindette - 5 janv. 2009 à 19:50
thev Messages postés 1853 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 27 avril 2024 - 5 janv. 2009 à 21:31
Bonjour et bonne année à tous,

J'ai un fichier que je souhaite filtrer selon une valeur contenue dans la cellule B9 de l'onglet Menu.
La formule Worksheets("Menu").Range("B9").Value me renvoie bien la valeur que je veux.
Worksheets("Menu").Range("B9").Value est bien du type String (j'ai vérifié avec VarType).
Mais le programme ci-dessous me renvoie l'erreur "objet requis" dès que j'ajoute la ligne du Set poste sans me préciser la ligne concernée, il se met sur la première (sub macro3()).
Pourquoi cette erreur? Comment y remédier?


Sub Macro3()
Dim poste As String
' test ci-dessous OK
MsgBox Worksheets("Menu").Range("B9").Value
Set poste = Worksheets("Menu").Range("B9").Value
MsgBox poste
Selection.AutoFilter Field:=5, Criteria1:="& poste &"
End Sub

Pouvez-vous m'aider?
Merci d'avance.
A voir également:

2 réponses

wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
5 janv. 2009 à 21:28
Bonjour

à essayer :
Selection.AutoFilter Field:=5, Criteria1:= Sheets("Menu").range("B9").value 
1
thev Messages postés 1853 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 27 avril 2024 681
5 janv. 2009 à 21:31
"Worksheets("Menu").Range("B9").Value" n'est pas un objet . L'objet est : "Worksheets("Menu").Range("B9")" , "value" est une propriété de cet objet. Donc 2 possibilités :

1- soit créer l'objet "poste" avec l'instruction : set poste = Worksheets("Menu").Range("B9")
Selection.AutoFilter Field:=5, Criteria1:=poste.value

2- soit créer une variable "poste" avec l'instruction poste = Worksheets("Menu").Range("B9") .value
Selection.AutoFilter Field:=5, Criteria1:=poste
1