Champ de recherche sur tout un classeur résultat ListBox

Bonjour à tous,

Tout d'abords merci pour ce site et ce forum. J'y découvre la puissance d'excel et des macros.

Je sollicite votre aide aujourd'hui pour compléter mon code sur un champ de recherche, adapté de la vidéo suivante = https://www.blog-excel.com/creer-un-champ-de-recherche-vba/

1) Je souhaiterai étendre la recherche à toutes les feuilles du classeur et nom une simple colonne sur une feuille et d'afficher le résultat dans une listbox adjacente

Mon problème se trouve principalement sur la boucle qui permet de chercher sur l'ensemble des feuilles. Comment dois-je faire ?

2) Est il possible d'afficher en plus du résultat, le nom de la feuille où se trouve le résultat, ainsi que la ligne... par exemple ?

Je souhaite afficher dans la listbox : le résultat, le contenu de la colonne suivante , le nom de la feuille et la ligne (ou adresse cellule)

Merci d'avance. voici mon bout de code :

Option Compare Text
Private Sub TextBox1_Change()
    Application.ScreenUpdating = False
       ListBox1.Clear

    If TextBox1 <> "" Then
    For ligne = 2 To 24
        If Cells(ligne, 1) Like "*" & TextBox1 & "*" Then
            ListBox1.AddItem Cells(ligne, 1) & " " & Cells(ligne, 2)
        End If
    Next
    End If

End Sub

Bien cordialement,

Mozen

Salut Mozen,

une proposition à tester et adapter à ta situation.

La macro démarre lorsque la TextBox perd le focus!

'
Dim rCel As Range
'
ListBox1.Clear
If Me.txtTxt.Text = "" Then Exit Sub
'
Application.ScreenUpdating = False
For x = 1 To Sheets.Count
    sFlag = Sheets(x).Name
    Set wks = Worksheets(sFlag)
    With wks
        For Each rCel In wks.UsedRange
            If rCel.Value Like Trim(Me.txtTxt.Text) Then
                iIdx = iIdx + 1
                ListBox1.AddItem
                ListBox1.List(iIdx - 1, 0) = Me.txtTxt.Text
                ListBox1.List(iIdx - 1, 1) = rCel.Offset(0, 1)
                ListBox1.List(iIdx - 1, 2) = wks.Name
                ListBox1.List(iIdx - 1, 3) = rCel.Address
            End If
        Next
    End With
Next
Me.ListBox1.Height = IIf(iIdx < 2, 30, iIdx * 15)
Application.ScreenUpdating = True
'

A+

Bonjour curulis57,

Merci pour cette réponse, je viens de regarder ton fichier et ça marche très bien... sur ton fichier !

En revanche sur le mien, il ne rapporte pas les valeurs des cellules adjacentes, feuille et coordonnées cellule.

Il ne rapporte que le résultat trouvé.

La différence viendrait elle des feuilles du classeurs qui sont nommées ?

Merci pour ton retour

Je retire ce que j'ai dit ! Il faut juste avoir une listbox avec le bon nombre de colonne bien sûr !

Merci pour votre aide trèèèès précieuse !

Rechercher des sujets similaires à "champ recherche tout classeur resultat listbox"