Private Sub Worksheet_Change(ByVal Target As Range)
With ListObjects(1).DataBodyRange 'tableau Excel structuré
Set Target = Intersect(Target.EntireRow, .Columns(1))
If Target Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each Target In Target
If IsEmpty(Target) Then Target = Application.Max(.Columns(1)) + 1: Target(1, 2) = Now
Next
Application.EnableEvents = True
End With
End Sub