Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Finish
If Not Intersect(Target, Range("B4:B6,E4:E6,H4:H6,K4:K6,N4:N6,Q4:Q6,T4:T6")) Is Nothing Then 'Ici que tu déclares les cellules où le changement de couleur est effectué en fonction de leur valeur [En gardant la même synthaxe]
Dim Cel As Range
Dim myRange As Range
Set myRange = Range("C11:O11") 'C'est içi que tu définis la plage de données où se trouve ta légende
For Each Cel In myRange
If Mid(Cel.Value, 1, 2) = Target.Value Then
x = Target.Row
y = Target.Column
Range(Cells(x, y), Cells(x, y).Offset(0, 2)).Interior.ColorIndex = Cel.Interior.ColorIndex
If Target.Value = "" Then
Range(Target, Target.Offset(0, 2)).Interior.ColorIndex = 0
End If
End If
Next Cel
End If
Finish:
Dim Cell As Range
Dim myRange1 As Range
Set myRange1 = Range("B4:B6,E4:E6,H4:H6,K4:K6,N4:N6,Q4:Q6,T4:T6")
For Each Cell In myRange1
If Cell.Value = "" Then Range(Cell, Cell.Offset(0, 2)).Interior.ColorIndex = 0
Next Cell
End Sub