Bonjour,
Testes ce code pour voir si il te convient, adapter le nom des feuille dans l'Array() :
Option Compare Text
Private Sub TextBox1_Change() 'www.blog-excel.com/creer-un-champ-de-recherche-vba
Dim TblFeuille
Dim Plage As Range
Dim Cel As Range
Dim I As Integer
If TextBox1.Text = "" Then Exit Sub
TblFeuille = Array("Feuil2", "Feuil3") 'adapter le nom des feuilles !
ListBox1.Clear
For I = 0 To UBound(TblFeuille)
Set Plage = DefPlage(Worksheets(TblFeuille(I)))
If Plage Is Nothing Then Exit Sub
For Each Cel In Plage
'If Cel.Value Like "*" & TextBox1.Text & "*" Then ListBox1.AddItem Cel.Value 'n'importe où dans le mot ou phrase
If Cel.Value Like TextBox1.Text & "*" Then ListBox1.AddItem Cel.Value 'qui commence par les lettres entrées
Next Cel
Next I
End Sub
Function DefPlage(Fe As Worksheet, Optional L As Long = 1, Optional C As Long = 1) As Range
On Error GoTo Fin
With Fe
Set DefPlage = .Range(.Cells(L, C), _
.Cells(.Cells.Find("*", .[A1], -4123, , _
1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
2, 2).Column))
End With
Exit Function
Fin:
Set DefPlage = Nothing
End Function