Private Sub Worksheet_Change(ByVal Target As Range)
'---recherche intuitive---
If Intersect(Target(1), Range("B10:B" & Rows.Count)) Is Nothing Then Exit Sub
If Target.Count = 1 Then Target.Select
Target(1, 4) = "" 'RAZ
If IsError([Produit]) Then Target(1) = ""
If IsEmpty(Target(1)) Then Exit Sub
If Application.CountIf([Produit], Target(1)) Then Exit Sub
Dim x As Variant
x = Application.VLookup("*" & Target(1) & "*", [Produit], 1, 0)
Target(1) = IIf(IsError(x), "", x)
End Sub