Private Sub Worksheet_Change(ByVal T As Range)
Dim Zone As Range, c As Range, couleurs As String
couleurs = ",2,3,4,5,6,7,8,10,12,13,14,15,17,19,20,22,23,24,33,34,35,36,37,38,39,40,43,44,45,46,50"
Set Zone = [B5].CurrentRegion
For Each c In Zone
c.Interior.ColorIndex = Split(couleurs, ",")(Application.WorksheetFunction.Rank(c, Zone) Mod UBound(Split(couleurs, ",")))
Next c
End Sub