Bonjour,
Voici une proposition avec un filtre sur la base :
Private Sub TextBox1_Change()
If Me.TextBox1 <> "" Then
Mots = Split(Me.TextBox1.Value, " ")
Filtrer Mots
Else
Range("Filtre").AutoFilter
End If
End Sub
Sub Filtrer(Mots)
Application.ScreenUpdating = False
With Range("Filtre")
ReDim tID(1 To .Rows.Count)
For i = 1 To .Rows.Count
For j = LBound(Mots) To UBound(Mots)
If Application.CountIf(.Rows(i), "*" & Mots(j) & "*") = 0 Then GoTo suiv
Next j
n = n + 1
tID(n) = CStr(.Cells(i, 1).Value)
suiv:
Next i
.AutoFilter 1, tID, xlFilterValues
End With
Application.ScreenUpdating = True
End Sub
Dans cet exemple, on a une textbox sur la feuille qui permet d'actualiser le filtre à chaque changement. Le filtre porte sur la première colonne (ID ayant des valeurs uniques) afin de faciliter l'opération. Il faudra peut-être adapter certaines choses.
Pour ma part, j'aurais plutôt essayé d'avoir les valeurs filtrées sur un autre onglet...
Cdlt,