Sub InsLigneTS()
Dim Btn As CommandBarButton, LO As ListObject, Rg As Range, Wsh As Worksheet
Dim IdxLgnInser%, i%, NbLgn%
Set Btn = Application.CommandBars.ActionControl
Paramètres = Split(Btn.Parameter, ";")
Set LO = Evaluate(Paramètres(0)).ListObject
Sens = Paramètres(1)
Set Rg = Selection
Set Wsh = Rg.Worksheet
Select Case Sens
Case "Haut"
IdxLgnInser = Rg.Row - LO.Range.Row
Case "Bas"
IdxLgnInser = Rg.Row - LO.Range.Row + 1
End Select
NbLgn = Selection.Rows.Count
Wsh.Unprotect
For i = 1 To NbLgn
LO.ListRows.Add IdxLgnInser, True
Next
LO.ListRows(IdxLgnInser).Range.Resize(NbLgn).Select
Wsh.Protect
End Sub
Sub SupLigneTS()
Dim Btn As CommandBarButton, LO As ListObject, Rg As Range, Wsh As Worksheet
Dim IdxLgnSup%, i%, NbLgn%
Set Btn = Application.CommandBars.ActionControl
Set LO = Evaluate(Btn.Parameter).ListObject
Set Rg = Intersect(Selection, LO.Range)
Set Wsh = Rg.Worksheet
IdxLgnSup% = Rg.Row - LO.Range.Row
NbLgn = Rg.Rows.Count
Wsh.Unprotect
For i = 1 To NbLgn
LO.ListRows(IdxLgnSup%).Delete
Next
Wsh.Protect
End Sub