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)

RomainPOIRET

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à l'aide de mon textbox, de filtrer le contenu de ma listbox :

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 :


Ainsi que le fichier,

Merci d'avance,

Romain
 

Pièces jointes

  • autre fichier résolu MATRICE DE COMPETENCE.xlsm
    108.4 KB · Affichages: 6
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...

Hasco

XLDnaute Barbatruc
Repose en paix
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

  • autre fichier résolu MATRICE DE COMPETENCE.xlsm
    94.3 KB · Affichages: 19

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…