Filtre Listbox avec Combobox

Bonjour à tous,

Depuis quelques temps je travaille sur les Userform pour rendre l'utilisation d'Excel au travail plus pratique pour gérer des bases de données.

J'ai un nouveau besoin: filtrer une base de données dans la listbox avec un combobox. Ca dépasse mes connaissances, donc je trouve des codes sur des forums et j'adapte. J'ai un code qui me filtre avec la textbox, mais la combobox reste vide et je ne peux donc pas filtrer.

Je vous demande donc un coup de main pour trouver le problème afin de pouvoir filtrer la listbox avec la combobox. Cette combobox doit me lister la colonne C sans doublon. La listBox se met à jour, je peux ensuite encore filtrer avec la textbox si besoin, voilà l'idée.

D'avance merci pour votre aide

513stock.xlsm (124.07 Ko)

Patsw,

Dans un 1er temps:

- le code d'initialisation du Userform est s'intitule : Userform1_Initialize. Il faut simplement enlever le "1" pour qu'il s'exécute.

Dans un second temps : le code redimensionne la forme de façon incorrecte, je propose de supprimer cette partie de code.

Ce qui donne :

Private Sub UserForm_Initialize()
Dim LastLig As Long, j As Long
Dim plg As Range
Dim cw

Set plg = Range("D2:F" & Range("F65536").End(xlUp).Row)
plg.Columns.AutoFit
'ListBox1.Width = 75 + plg.Width
'Me.Width = ListBox1.Width + 35
'CommandButton1.Left = (Me.Width / 2) - (Me.CommandButton1.Width / 2)

With ComboBox
    .ColumnCount = 1
    .Visible = False
End With

With ListBox1
    cw = ""
    .ColumnCount = plg.Columns.Count
    '.RowSource = plg.Address
        For I = 1 To .ColumnCount
          cw = cw & plg.Columns(I).Width + 10 & ";"
       Next
    .ColumnWidths = cw
    .Visible = False
End With

Application.ScreenUpdating = False
With Worksheets("Base")
    LastLig = .Cells(.Rows.Count, "C").End(xlUp).Row
    Me.ComboBox.Clear
    For j = 2 To LastLig
        If .Range("C" & j) <> "" Then
            Me.ComboBox = .Range("C" & j)
            If Me.ComboBox.ListIndex = -1 Then Me.ComboBox.AddItem .Range("C" & j)
        End If
    Next j
End With

With Me.ComboBox
    .Visible = True
    .ListIndex = -1
End With

End Sub

J'ai testé tel quel et ça marche.

Merci beaucoup pour votre aide, l'explication et votre rapidité

Rechercher des sujets similaires à "filtre listbox combobox"