Bonjour,
Une première proposition à étudier.
Cdlt.
Option Explicit
Dim lo As ListObject
Private Sub cmdReset_Click()
Set lo = Me.ListObjects(1)
With lo
If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
End With
Set lo = Nothing
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lr As ListRow
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range([A2], [B2])) Is Nothing Then
If Application.CountA([A2:B2]) <> 2 Then
Exit Sub
Else
Application.EnableEvents = False
Set lo = Me.ListObjects(1)
If lo.InsertRowRange Is Nothing Then
Set lr = lo.ListRows.Add
With lr.Range
.Cells(1, 1) = [A2]: .Cells(1, 2) = [B2]
End With
Else
With lo.InsertRowRange
.Cells(1) = [A2]: .Cells(2) = [B2]
End With
End If
[A2:B2].ClearContents
End If
End If
Application.EnableEvents = True
Set lr = Nothing: Set lo = Nothing
End Sub