Macro pour filtrer une colonne selon le contenu d'une cellule

Djoulay88100 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
m@rina Messages postés 23882 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

Je viens vers vous, aujourd'hui, pour solliciter votre aide concernant une macro. Après multiples recherches sur les forums, je ne trouve toujours pas de réponse. Voilà mon problème : je souhaiterais, dans le cadre de mon travail, pouvoir établir le plan de charge des contrôles que je devrai effectuer l'année suivante.
J'ai constitué une matrice qui se met à jour à jour au fur et à mesure des contrôles, de façon automatique.
J'ai utilisé l'enregistreur de macro pour donner forme à ce que je recherche et j'obtiens :

Sub Prévi2()
ActiveSheet.Range("$A$3:$F$1001").AutoFilter Field:=5, Operator:= _
xlFilterValues, Criteria2:=Array(0, "12/30/2020")
End Sub


Jusqu'à là, cela fonctionne. Mais afin de ne pas "bidouiller" dans les macros quand viendra 2021 et, plus généralement, les années suivantes, je souhaiterais que la date "12/30/2020" soit remplacée par la valeur contenue dans une cellule. J'ai essayé ceci :

Sub Prévi1()
Dim d As Variant
d = Sheets("Matrice").Range("F2").Value
ActiveSheet.Range("$A$3:$F$1001").AutoFilter Field:=5, Operator:= _
xlFilterValues, Criteria2:=Array(0, d)
End Sub


Mais seulement voilà, cela ne fonctionne pas. Le code erreur est : Erreur d'exécution '1004': La méthode Autofilter de la classe Range a échoué.

Je suis loin de connaître toutes les subtilités de VBA et c'est pour ça que je vous demande de l'aide.

En vous remerciant par avance
A voir également:

1 réponse

m@rina Messages postés 23882 Date d'inscription   Statut Contributeur Dernière intervention   11 464
 
Bonsoir,

Moi j'utilise le Criteria1 et ça marche avec une date écrite au format français dans ta cellule (jj/mm/aaa) :

ActiveSheet.Range("$A$3:$F$1001").AutoFilter Field:=5, Criteria1:=Format(Date, d)

Je te conseille de donner u nom à ta plage de cellules.

m@rina
0