Sub Macro1()
Dim p As Object 'déclare la variable p (onglet Plannings)
Dim dl As Integer 'décalre la variable dl (Dernière Ligne)
Dim pl As Range 'décalre la variable pl (PLage)
Dim cel As Range 'décalre la variable cel (CELlule)
Dim tl() As Integer 'décalre le tableau de variables indexées tl (Tableau de Lignes)
Dim i As Integer 'décalre la variable i (Incrément)
Set p = Sheets("Plannings") 'définit l'onglet p
dl = p.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
Set pl = p.Range("C2:C" & dl) 'définit la plage pl
pl.Offset(0, -2).Resize(pl.Rows.Count, 11).Interior.ColorIndex = xlNone 'supprime la couleur grise
For Each cel In pl 'boucle sur toutes les cellule cel de la plage pl
If cel.Offset(1, 0).Value <> cel.Value Then 'condition 1 : si la valeur de la cellule en dessous de cel est différente de la valeur de cel
ReDim Preserve tl(1, i) 'redimensionne le tableau tl
If tl(0, i) = 0 Then 'condition 2 : si la variable indéxée tl(0,i) est nulle (ligne du début de la plage à colorier)
tl(0, i) = cel.Offset(1, 0).Row 'récupère le numéro de ligne du début de la plage à colorier
Else 'sinon
tl(1, i) = cel.Row 'récupère la ligne de la fin de la plage à colorier
i = i + 1 'incrémente i
End If 'fin de la condition 2
End If 'fin de la condition 1
Next cel 'prochaine cellule de la boucle
For i = 0 To UBound(tl, 2) - 1 'boucle sur toutes les variable indexées
p.Range(p.Cells(tl(0, i), 1), p.Cells(tl(1, i), 11)).Interior.ColorIndex = 48 'colore la plge en gris
Next i 'prochaine variable de la boucle
End Sub