Private Sub CommandButton1_Click()
Dim iNoLigne As Integer
Application.ScreenUpdating = False
iNoLigne = ActiveCell.Row ' On récupère le N° de la ligne courante
With Range("A" & iNoLigne & ":C" & iNoLigne)
.Resize(1).EntireRow.Insert ' On insert une ligne vide
' On recopie les formats et formules de la ligne précédente
.EntireRow.Copy .Offset(-1).Resize(1).EntireRow
On Error Resume Next ' Au cas où il n'y ait pas de constantes
' On efface les valeurs constantes préentes dans la ligne
.Offset(-1).Resize(1).EntireRow.SpecialCells(xlConstants).ClearContents
End With
Application.ScreenUpdating = True
ActiveCell.Select
End Sub