Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [I1,K1]) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
If Me.FilterMode Then Me.ShowAllData 'RAZ
If [I1] = "" Or [K1] = "" Then Exit Sub
With [A1].CurrentRegion 'à adapter éventuellement
With .Rows(1).Find([I1], , xlValues, xlWhole)(2)
If Right([K1], 1) = "=" Then
[L2] = "=K$1=TXT(" & .Address(0, 0) & ",""" & .NumberFormat & """)&""="""
ElseIf Right([K1], 1) = "*" Then
[L2] = "=K$1=LEFT(TXT(" & .Address(0, 0) & ",""" & .NumberFormat & """),LEN(K$1)-1)&""*"""
Else
[L2] = "=SEARCH(K$1,TXT(" & .Address(0, 0) & ",""" & .NumberFormat & """))"
End If
End With
.AdvancedFilter xlFilterInPlace, [L1:L2]
End With
[L2] = ""
End Sub