Private Sub Worksheet_Change(ByVal Target As Range)
Dim dat$
With ListObjects(1).DataBodyRange
If Intersect(Target, .Columns(1)) Is Nothing Or Target.Count > 1 Then Exit Sub
If Target = "" Then
Rows(Target.Row).Delete
Else
If Right(Target, 1) = "*" Then dat = Replace(Target, "*", "")
If IsDate(dat) Then Target = CDate(dat)
.Sort .Columns(1), IIf(dat = "", 1, 2), Header:=xlYes
End If
End With
End Sub