Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1""
For Each cel In .Range("A1:A" & .Cells(Application.Rows.Count, 1).End(xlUp).Row) 'boucle sur toutes les cellules éditées cel de la colonne A
If cel.Offset(0, 1).Value <> "" Then 'condition : si la cellule en colonne B n'est pas vide
'définit la cellule de destination (D1, si D1 est vide, sinon, la première cellule vide de la colonne D)
Set dest = IIf(.Range("D1").Value = "", .Range("D1"), .Cells(Application.Rows.Count, 4).End(xlUp).Offset(1, 0))
cel.Copy dest 'copie la cellule et la colle dans dest
End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
End With 'fin de la prise en comtre de l'onglet "Feuil1"
End Sub