Sub Couleur(P As Range)
Dim col, fusion, ub%, i&, j%, n&
col = Array(2, 6, 10, 12, 14, 16, 18)
fusion = Array(4, 3, 2, 2, 2, 2, 2)
ub = UBound(col)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
P.EntireRow.UnMerge 'défusionne
P.EntireRow.Sort P(1), xlAscending, P(1, 3), , xlAscending, Header:=xlNo 'tri sur 2 colonnes
For i = 1 To P.Rows.Count
For j = 0 To ub
P.EntireRow.Cells(i, col(j)).Resize(, fusion(j)).Merge 'refusionne
Next j
If P(i, 1) & Chr(1) & P(i, 3) <> P(i - 1, 1) & Chr(1) & P(i - 1, 3) Then n = n + 1
P.Rows(i).Interior.ColorIndex = IIf(n Mod 2, xlNone, 15) 'alternance de couleurs
Next i
End Sub