Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As XlColorIndex 'déclare la variable c (Couleur)
If Selection.Cells.Count > 1 Then Exit Sub 'si plusieurs cellules sélectionnées, sort de la procédure
If Application.Intersect(Target, Range("A2:K2")) Is Nothing Then Exit Sub 'si le changement a lieu ailleurs que dans la plage A2:K2, sort de la procédure
c = IIf(UCase(Target.Value) = "D", 15, xlNone) 'définit la couleur c (gris si la cellule cible vaut "D" ou "d", sinon aucune couleur)
Range(Cells(2, Target.Column), Cells(10, Target.Column)).Interior.ColorIndex = c 'colore la plage de la couleur c
End Sub