Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim P As Range, tablo, i&, N As Range
Application.ScreenUpdating = False
Set P = Range("A1", UsedRange)
tablo = P 'matrice, plus rapide
Set N = P.Columns("N")
ReDim tbColIdx(1 To UBound(tablo))
For i = 1 To UBound(tablo)
tbCidx(i) = N.Cells(i).Interior.ColorIndex
Next
[E:E,H:H,J:J,N:N].Interior.ColorIndex = xlNone 'RAZ
For i = 1 To UBound(tablo)
If Not IsEmpty(tablo(i, 3)) Then If Not IsEmpty(tablo(i, 4)) Then _
If IsEmpty(tablo(i, 5)) Or IsEmpty(tablo(i, 10)) Or IsEmpty(tablo(i, 14)) _
Then Union(P(i, 5), P(i, 10), P(i, 14)).Interior.Color = 15773696 'bleu
If tablo(i, 7) Like "*occasion*" And tablo(i, 8) Like "*lu*" Then P(i, 8).Interior.Color = 5296274 'vert
Next
For i = 1 To UBound(tablo)
If tbCidx(i) = 6 Then N.Cells(i).Interior.ColorIndex = 6
Next
[A1:N3].Interior.Color = RGB(190, 210, 240) 'Remise en bleu de l'entete
Application.ScreenUpdating = True
End Sub