Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim MaCellule As Range
Dim MaValeur As Integer
If Target.Cells.Count <> 1 Then Exit Sub ' Si plus d'une cellule modifiée, on sort
If Target.Row < 13 Or Target.Column > 65 Then Exit Sub ' Si on est au-dessus ou à droite du tableau, on sort
If Target.Column Mod 12 <> 5 Then Exit Sub ' Si on n'est pas dans la bonne colonne, on sort
If (Target.Row + 1) Mod 7 > 1 Then Exit Sub ' Si on n'est pas sur la bonne ligne, on sort
Set MaCellule = Target.Offset(-((Target.Row + 1) Mod 7), 0) ' On détermine la première des deux cellules (exemple : E13 pour la plage E13:14)
MaValeur = -(MaCellule.Value = "x") - 2 * (MaCellule.Offset(1, 0).Value = "x")
Select Case MaValeur
Case 0
MaCellule.Offset(-5, 3).Resize(7, 6).Font.Color = RGB(255, 0, 0) ' Rouge
Case 1
MaCellule.Offset(-5, 3).Resize(7, 6).Font.Color = RGB(0, 176, 80) ' Vert
Case 2
MaCellule.Offset(-5, 3).Resize(7, 6).Font.Color = RGB(0, 0, 0) ' Noir
Case 3
MaCellule.Offset(-5, 3).Resize(7, 6).Font.Color = RGB(0, 0, 255) ' Bleu
End Select
End Sub