Private Sub Worksheet_change(ByVal target As Range)
Dim d As Object, tablo, i&, x$, y$
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
With [A1].CurrentRegion.Resize(, 4)
tablo = .Value 'matrice, plus rapide
For i = 2 To UBound(tablo)
tablo(i, 3) = "": tablo(i, 4) = "" 'RAZ
x = tablo(i, 2)
y = x & tablo(i, 1)
If d.exists(x) Then tablo(i, 4) = 1 Else d(x) = ""
If d.exists(y) Then tablo(i, 3) = 1 Else d(y) = ""
Next
'---restitution---...