Sub AlignementDates()
Dim Plage As Range, Te(), Le&, Ce&, Ts(), Ls&, Cs&
Te = Feuil1.Range(Feuil1.[A50000].End(xlUp), Feuil1.[AK4]).Value
ReDim Ts(1 To UBound(Te, 1), 1 To 20)
Ls = 1
For Le = 1 To UBound(Te) ' Pour chaque ligne d'entrée
For Ce = 9 To 12 ' De H à K: si l'un change cette ligne devient la nouvelle ligne de sortie et on repart à 0 pour la colonne de sortie (à W en fait)
If Te(Le, Ce) <> Te(Ls, Ce) Then Ls = Le: Cs = 0: Exit For
Next Ce
For Ce = 28 To UBound(Te, 2) ' Pour chaque X à AA: s'il n'est pas vide on l'empile à la colonne suivante de la ligne de sortie
If Not IsEmpty(Te(Le, Ce)) Then Cs = Cs + 1: Ts(Ls, Cs) = Te(Le, Ce)
If Cs > 5 Then Exit For
Next Ce
Next Le
Feuil1.[AB4].Resize(UBound(Ts, 1), 11).Value = Ts
End Sub