Userform premier filtre sur liste déroulante

Bonjour à tous,

J'ai créé un userfom pour faire une recherche d'un numéro d'article par rapport à son nom, dans cette userform j'ai créé une liste déroulante avec tous nos produits

Qui ensuite recherche sont numéro d'article et vas la coller sur ma feuille Excel pour faire le job, jusque-là tout va bien.

Mais la liste déroulante est beaucoup trop longue, j'ai donc ajouter un nouveau contrôle ou je voudrai taper la première lettre du produit (ex A), et qui me filtrerai ma liste déroulante en dessous avec seulement les propositions de noms commencent par A.

J'ai glaner plusieurs informations sur le forum mais sans résultat jusque maintenant, voici ce que j'ai voulu retravailler en vain.

Private Sub TB_Premier_Lettre_Change()
Dim C As Range
    Me.CB_Nom.Clear
    For Each C In Ws.Range("D7:D" & Ws.Range("D" & Rows.Count).End(xlUp).Row)
        If Left(C, Len(Me.TB_Premier_Lettre.Value)) = UCase(Me.TB_Premier_Lettre.Value) Then Me.CB_Nom.AddItem C
    Next C
End Sub

Bonjour

Mettez ce code dans votre userform

Private Sub ItemPremierLettre_Change()
Dim c As Range
Dim Prem

If Me.ItemPremierLettre <> "" Then
    Me.Controls(item_list).Clear
    With Feuil2.ListObjects("Tableau1").ListColumns(3).DataBodyRange
        Set c = .Find(Me.ItemPremierLettre.Value, LookIn:=xlValues)
            If Not c Is Nothing Then
                prem = c.Address
                Do
                    If Left(c.Value, 1) = Me.ItemPremierLettre.Value Then Me.Controls(item_list).AddItem c.Value
                    Set c = .FindNext(c)
                Loop While Not c Is Nothing And c.Address <> prem
            End If
    End With
End If
End Sub

Attention que vous devez également supprimer l'instruction List_recherche que vous avez placée dans la rubrique ROWSSOURCE de votre Combobox
Je vous conseille d'éviter l'utilisation de ROWSSOURCE qui apporte parfois des soucis. Préférez lui l'instruction ADDITEM que vous pouvez utiliser à l'ouverture de votre userform pour compléter une combobox

Cordialement

Bonjour Dan,

Merci beaucoup pour votre aide, j'ai enlever l'instruction List_recherche dans ROWSSOURCE et utiliser votre code, mais j'ai une erreur au moment de la recherche.

et vu que je connais pas du tout ce que vous avez fait je n'arrive pas a trouvé la solution.

Bonjour John

Hum... désolé j'avais testé un truc.

Dans le code proposé, à deux endroits vous devez enlever le mot "Controls" et les parenthèses. Ce qui devient -->

Me.Item_list.Clear

et plus bas

Me.Item_list.AddItem

Bonjour Dan,

Super, un grand merci pour votre aide.

Bonne journée

Rechercher des sujets similaires à "userform premier filtre liste deroulante"