Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
dl = .Cells(Application.Rows.Count, 4).End(xlUp).Row 'définit la dernière ligne éditée de la colonne 4 (=D)
For i = dl To 2 Step -1 'boucle inversée de la ligne dl à la ligne 2
Set pl = Range(.Cells(i, 4), .Cells(i, 10)) 'définit la plage pl
pl.Copy 'copie la plage
pl.Insert shift:=xlDown 'insère la plage copiée en dessous
pl.Interior.ColorIndex = xlNone 'supprime la couleur de font
pl.Font.ColorIndex = 3 'couleur de l'encre rouge
.Cells(i + 1, 6).Value = "512000" 'place le numéro de la contrepartie
If .Cells(i, 9).Value <> 0 Then .Cells(i + 1, 10).Value = .Cells(i, 9).Value: .Cells(i + 1, 9).Value = "" 'inverse le débit /crédit
If .Cells(i, 10).Value <> 0 Then .Cells(i + 1, 9).Value = .Cells(i, 10).Value: .Cells(i + 1, 10).Value = "" 'inverse le débit /crédit
Next i 'prochaine ligne de la boucle
End With 'fin de la prise en compte l'onglet "Feuil1"
End Sub