Bonjour à tous
Avec un tout petit ajout à ta procédure, en passant par une autre variable range, et en utilisant UNION, cela permet de modifier ce que tu veux pour les cellules de départ (Couleur de fond, couleur de police et caractères gras ou non), et ne modifier que certaines de ces propriétés pour les autres cellules (en l'occurence, ici, uniquement la couleur de fond)
En fait, C2 devient l'ensemble des cellules du matin, où l'ensemble des cellules de l'après-midi.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range, C2 As Range
Application.ScreenUpdating = False 'Pour désactiver la mise à jour de l'affichage
For Each C In Worksheets(1).Range("H10:I20")
If C.Column = 8 Then
Set C2 = Union(C, C.Cells(1, -4), C.Cells(1, -3))
Else
Set C2 = Union(C, C.Cells(1, -3), C.Cells(1, -2))
End If
Select Case C.Value
Case "Congés"
C2.Interior.ColorIndex = 50
C.Font.ColorIndex = 50
Case "Congés n-1"
C2.Interior.ColorIndex = 5
C.Font.ColorIndex = 5
Case "RTT"
C2.Interior.ColorIndex = 6
C.Font.ColorIndex = 6
Case "Récup"
C2.Interior.ColorIndex = 46
C.Font.ColorIndex = 46
Case "Absence"
C2.Interior.ColorIndex = 15
C.Font.ColorIndex = 15
C.Font.Bold = True
Case "Maladie"
C2.Interior.ColorIndex = 29
C.Font.ColorIndex = 29
C.Font.Bold = True
Case ""
C2.Interior.ColorIndex = 0
C.Font.ColorIndex = 0
C.Font.Bold = False
End Select
Next C
Application.ScreenUpdating = True
End Sub
Remarque: j'ai remplacé ta série de IF then ...
par select case
Bonne journée.
Laurent