Sub Macro1()
Dim dl As Integer 'déclare la variable dl (dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim tc() 'déclare le tableau de variables tc (Tableau des Couleurs)
Dim i As Byte 'déclare la variable i (Incrément)
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
Set pl = .Range("A2:A" & dl) 'définit la plage pl
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
ReDim Preserve tc(i) 'redimensionne le tableau de variables tc
tc(i) = cel.Offset(0, 1).Value 'attribue une variable indexée au tableau tc
i = i + 1 'incrémente i
If cel.Value <> cel.Offset(1, 0).Value Then 'condition : si la cellule cel est différente que la cellule en dessous d'elle
For i = 0 To UBound(tc) 'boucle sur toutes les variables du tableau tc
'place dans la ligne de cel, les variables les unes à coté des autres
.Cells(cel.Row, Application.Columns.Count).End(xlToLeft).Offset(0, 1).Value = tc(i)
Next i 'prochaine variable de la boucle
Erase tc() 'réinitialise le tableau tc
i = 0 'réinitialise la variable i
End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub