Champ de recherche

Bonjour

Suite au super poste ci joint

https://www.blog-excel.com/creer-un-champ-de-recherche-vba/

je cherche une solution pour effectuer la recherche sur l’ensemble de la feuille 2 et 3

Ayant un niveau en VBA très nul si une âme charitable peut me venir en aide

merci

++

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

merci pour l'aide je test et je te dis

j ai un problème de compilation sur la ligne

Function DefPlage(Fe As Worksheet, Optional L As Long = 1, Optional C As Long = 1) As Range

Bonjour,

Tu as bien copié tout le code sans oublier une ligne ?

Que dit le message d'erreur ?

je pense que oui mais dans le doute je te joint le fichier

Re,

Trois points :

le premier, l'étiquette d'embranchement dans ma fonction est nommée "Fin" et non "Fin132", je ne sais pas d'où vient ce 132 ? Mais à supprimer

Le second, le mot "Haut" n'a rien à faire là où tu la mis (tout en bas du code sous la fonction) donc, à supprimer

Le dernier, il y a un espace parasite dans le nom de la feuille "autre" en fin de mot donc soit tu écris "autre" avec une espace de fin ---> Array("parker", "autre ") soit tu le supprimes du nom de la feuille

un grand merci pour ton aide

ca marche nickel

Content de t'avoir aidé

Rechercher des sujets similaires à "champ recherche"