Sub Macro1()
Dim celA As Range, celB As Range 'déclare les variables celA et celB
'boucle sur toutes les cellules éditées de la colonne A moins la dernière (calculée par rapport à la colonne D)
For Each celA In Range("A2:A" & Range("D65536").End(xlUp).Row - 1)
'si la cellule du dessous est vide, elle prend la valeur de la cellule du dessus
If celA.Offset(1, 0).Value = "" Then celA.Offset(1, 0).Value = celA.Value
Next celA 'prochaine cellule de la boucle
'idem pour la colonne B
For Each celB In Range("B2:B" & Range("D65536").End(xlUp).Row - 1)
If celB.Offset(1, 0).Value = "" Then celB.Offset(1, 0).Value = celB.Value
Next celB
End Sub