Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 filtre listbox avec un textbox (valeur en colonne)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

RomainPOIRET

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à l'aide de mon textbox, de filtrer le contenu de ma listbox :
1639566298586.png
Le problème que j'ai c'est que quand je renseigne par exemple la lettre "p" il me propose qu'une seule proposition alors que 3 lignes présentent la lettre "p", de plus je souhaiterais que le filtre se fasse peut importe la position de ma selection. C'est à dire que si je renseigne "u", il me propose quand même "Autres choses" alors qu'aujourd'hui non.

Vous trouverez le code ci dessous :
1639566450017.png

Ainsi que le fichier,

Merci d'avance,

Romain
 

Pièces jointes

Solution
Bonjour,

Dans le fichier ci-joint vous trouverez les modifications ci-dessous :
VB:
Private Sub filtre_Change()
    Dim Recherche As String
    Dim Formations As Variant ' Tableau en mémoire des noms de formation
    Dim i As Integer

    Me.liste_formations.clear
    'N = 0
    '
    ' Première ligne du tableau qui commence en A1
    With Sheets("MATRICE").Range("A1").CurrentRegion.Rows(1)
        ' Recueillir les formations se commençant à la troisième quatrième colonne
        Formations = .Offset(, 3).Resize(, .Columns.Count - 3).Value
        ' créer le masque de recherche
        Recherche = "*" & Trim(Me.filtre.Value)
        ' s'il contient autre chose que *
        If Recherche <> "*" Then
            'compléter le masque...
Bonjour,

Dans le fichier ci-joint vous trouverez les modifications ci-dessous :
VB:
Private Sub filtre_Change()
    Dim Recherche As String
    Dim Formations As Variant ' Tableau en mémoire des noms de formation
    Dim i As Integer

    Me.liste_formations.clear
    'N = 0
    '
    ' Première ligne du tableau qui commence en A1
    With Sheets("MATRICE").Range("A1").CurrentRegion.Rows(1)
        ' Recueillir les formations se commençant à la troisième quatrième colonne
        Formations = .Offset(, 3).Resize(, .Columns.Count - 3).Value
        ' créer le masque de recherche
        Recherche = "*" & Trim(Me.filtre.Value)
        ' s'il contient autre chose que *
        If Recherche <> "*" Then
            'compléter le masque
            Recherche = LCase(Recherche) & "*"
            ' et comparer avec chaque valeur de la deuxième dimension
            ' du tableau en mémoire des formations
            For i = 1 To UBound(Formations, 2)
                If LCase(Formations(1, i)) Like Recherche Then
                    Me.liste_formations.AddItem Formations(1, i)
                End If
            Next
        Else
            Me.liste_formations.List = Application.Transpose(Formations)
        End If
    End With
sortie:
End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
870
Réponses
40
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…