Private Sub Worksheet_Change(ByVal Target As Range) 'Un grand merci à Job75 pour cette macro
Dim dat$
With ListObjects(1).DataBodyRange
If Intersect(Target, .Columns(1)) Is Nothing Or Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
On Error Resume Next
If Target = "" Then
Rows(Target.Row).Delete
Else
.Columns(7).NumberFormat = "0;;"
.Columns(7).SpecialCells(xlCellTypeBlanks) = 0
If Right(Target, 1) = "*" Then dat = Replace(Target, "*", "")
If IsDate(dat) Then Target = CDate(dat)
.Sort .Columns(7), IIf(dat = "", 1, 2), .Columns(1), , IIf(dat = "", 1, 2), Header:=xlYes
.Columns(7).SpecialCells(xlCellTypeConstants, 1) = ""
End If
Application.EnableEvents = True
End With
End Sub