Private Sub Worksheet_Change(ByVal Target As Range)
If Target(1).Address <> "$K$1" Then Exit Sub
Dim af As Boolean, titres
Application.ScreenUpdating = False
Rows("3:" & Rows.Count).Clear 'RAZ
With Sheets("BASE")
af = .AutoFilterMode 'mémorise
titres = .[A1:S1] 'mémorise
.[A1] = "Champ1": .[A1].AutoFill .[A1:S1], xlFillValues
.[T2].NumberFormat = "General" 'surtout pas de format Texte...
.[T2] = "=SEARCH(" & [K1].Address(External:=True) & ",D2&CHAR(1)&P2)"
.[A:S].AdvancedFilter xlFilterCopy, .[T1:T2], [A3:S3]
.[T2] = ""
.[A1:S1] = titres: [A3:S3] = titres
If af Then .[A1:S1].AutoFilter 'remet le filtre automatique
End With
Rows("3:" & Rows.Count).Sort [G3], xlAscending, Header:=xlYes 'tri
[A:S].Columns.AutoFit 'largeur des colonnes
End Sub