J'ai changé mon fusil d’épaule, je te propose une toute autre version :
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("H1")) Is Nothing Then Exit Sub
If Range("H1") = "" Then
On Error Resume Next
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1
Else
ladate = Format(Range("H1"), "mm/dd/yyyy")
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Operator:= _
xlFilterValues, Criteria2:=Array(2, ladate)
End If
End Sub
à mettre directement dans la feuille concernée
Il n'y a pas de bouton, la macro se déclenche à chaque changement de date dans H1. Et en cas d'effacement le filtre est alors désactivé.