ListBox filtrée à partir d'une textbox

Hello à tous,

J'espère que vous allez bien et que le confinement n'est pas trop dur.

Je suis sur un projet, qui permet d'afficher les feuilles visibles dans une listbox "Choose_ListBox" et j'aimerai filtrer les résultats de la listbox à l'aide d'une textbox, pour l'instant mon code est le suivant:

Private Sub TextBox1_Change()
Dim i As Long
For i = Me.Choose_ListBox.ListCount - 1 To 0 Step -1
    If InStr(1, Me.Choose_ListBox.List(i), TextBox1, vbTextCompare) = 0 Then Me.Choose_ListBox.RemoveItem (i)
Next i
End Sub

Le code actuel fonctionne mais n'est pas "en temps réel", si jamais je veux changer ce que je tape dans la textbox en supprimant ou modifiant ma saisie, je suis obligé de quitter mon userform et de le relancer pour avoir une nouvelle recherche, est-ce que vous pensez qu'il soit possible de changer le code pour le rendre dynamique ?

Merci pour votre aide,

Naxos

Bonsoir à tous,

J’espère que vous allez bien.

Quelqu’un a une idée? Je sèche un peu après quelques essais!

Merci pour votre aide,

Naxos

Bonsoir naxos, le forum,

A tout hasard, as-tu testé avec

Private Sub TextBox1_AfterUpdate()

??

Si tu saisis dans la TextBox et que tu fais Entrée, la listbox devrait (sauf erreur de ma part) se réactualiser....

Cordialement,

Bonsoir Naxos

peut-être un petit fichier exemple ??

Merci pour toi et pour nous

Bonne soirée

Bonsoir Xorsankukai, le forum,

Merci pour ton message, malheureusement ça ne semble pas fonctionner.

Voici en pièce jointe le code et l'userform.

L'idée ce serait d'avoir la listbox qui se mette à jour en temps réel de la saisie tel un filtre et si on supprime la saisie (un caractère) que la listbox se repopulate au fur et à mesure

N'hésitez pas si vous avez la moindre idée.

Merci pour votre aide,

Naxos

57classeur-naxos.xlsm (37.50 Ko)
57classeur-naxos.xlsm (37.50 Ko)

Bonjour Naxos, bonjour le forum

Essaie avec ce fichier

Si j'ai bien compris ce que tu souhaites...

Bonne journée

Bonjour Patty5046,

Merci pour ton retour, néanmoins ça ne fonctionne pas chez moi, il semblerait que le résultat soit affiché par une recherche exacte, l'idée est que mon code actuel fonctionne mais n'est pas "en temps réel", si jamais je veux changer ce que je tape dans la textbox en supprimant ou modifiant ma saisie, je suis obligé de quitter mon userform et de le relancer pour avoir une nouvelle recherche, est-ce que vous pensez qu'il soit possible de changer le code pour le rendre dynamique ?

J'ai trouvé une solution qui fonctionne et qui me convient, je poste ci-après le code pour ceux qui seraient intéressés:

Sub TextBox1_Change()
    Dim i As Long
    Dim Filtre As String
    Filtre = LCase("*" & TextBox1.Text & "*")
    Call Populate_Tab_List
    With Choose_ListBox
        For i = .ListCount - 1 To 0 Step -1
            If (Not (LCase(.List(i, 0)) Like Filtre)) Then
                .RemoveItem i
            End If
        Next i
    End With
End Sub

Merci pour votre aide,

Naxos

Rechercher des sujets similaires à "listbox filtree partir textbox"