Donne un nom à N2, par exemple Mon_Critere
Et change la macro comme suit :
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim Rng As Range
If Target.Name.Name = "Mon_Critere" Then
If IsDate(Target.Value) Then
Set Rng = Me.ListObjects(1).Range
Rng.AdvancedFilter _
Action:=xlFilterInPlace, _
criteriarange:=Range("Criteria"), _
unique:=False
Else
Me.ShowAllData
End If
End If
End Sub