Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C2:C4]) Is Nothing _
Or [C2] = "" Or [C3] = "" Then Exit Sub
Dim P As Range, t, x$, i&
Set P = Sheets("BDD").[B2].CurrentRegion
t = P 'matrice, plus rapide
x = [C2] & [C3]
For i = 2 To UBound(t)
If x = t(i, 1) & t(i, 2) Then Exit For
Next
P(i, 1) = [C2]: P(i, 2) = [C3]: P(i, 3) = [C4] & Chr(160)
'tri sur colonne C puis sur colonne B
P.Resize(P.Rows.Count + 1).Sort P(1, 2), 1, P(1), , 1, Header:=xlYes
'repérage de la ligne
[C5] = Application.Match("*" & Chr(160), P(1, 3).EntireColumn, 0)
'effacement du caractère 160
P.Columns(3).Replace Chr(160), "", xlPart
End Sub