Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
Dim Car_deb As Byte, Car_fin As Byte
With Target
.Font.ColorIndex = 1
.Font.Bold = False
Car_deb = InStr(1, .Value, "_") - 1
Car_fin = InStrRev(.Value, "!")
.Characters(1, Car_deb).Font.FontStyle = "Bold"
.Characters(1, Car_deb).Font.ColorIndex = 5
.Characters(Car_fin, Len(Target.Value)).Font.FontStyle = "Bold"
.Characters(Car_fin, Len(Target.Value)).Font.ColorIndex = 3
.Characters(Car_deb + 1, Car_fin - Car_deb - 1).Font.ColorIndex = 2
End With
End If
End Sub