Sub Macro1()
Dim OS As Object 'déclare la variable OS (Onglet Source)
Dim CD As Range 'déclare la variable CD (Cellule de Départ)
Dim NL As Integer 'déclare la variable NL (Nombre de Lignes)
Dim PL As Range 'déclare la variable PL (PLage)
Dim OD As Object 'déclare la variable OD (Onglet Destination)
Dim CA As Range 'déclare la variable CA (Cellule d'Arrivée)
Dim CEL As Range 'déclare la variable DEST (cellule de DESTination)
Set OS = Sheets("Feuil1") 'définit l'onglet source OS
Set CD = OS.Range("B6") 'définit la cellule de départ CD
NL = OS.Cells(Application.Rows.Count, CD.Column).End(xlUp).Row - CD.Row 'définit le nombre de lignes
Set PL = CD.Resize(NL + 1, 1) 'définit la plage PL
Set OD = Sheets("Feuil2") 'définit l'onglet destination OD
Set CA = OD.Range("A1") 'définit la cellule d'arrivée
For Each CEL In PL 'boucle sur toutes les cellule de la plage PL
'définit la cellulle de destinatio DEST (CA si CA est vide , sinon la seconde ligne vide rencontrée dans la colonne de CA)
Set DEST = IIf(CA.Value = "", CA, OD.Cells(Application.Rows.Count, CA.Column).End(xlUp).Offset(2, 0))
DEST.Value = CEL.Value 'récupère la valeur de la cellule CEL
Next CEL 'prochaine cellule de la boucle
End Sub