Sélectionner d'une liste déroulante puis filtrer EXCEL/VBA

Bonjour

Je sollicite une nouvelle fois votre aide car je suis de nouveau bloquée... (J'ai cherché sur le forum et d'autres site mais je ne comprend toujours pas...)

je voudrai qu'à partir de mon userform qui apparaît au début je puisse filtrer ma feuille de commande en fonction de la référence choisie, tout cela en appuyant sur le bouton valider.

Voici le code jusqu'à présent

Option Explicit

Private myTab()
Private ind As Long

'Private Sub Workbook_Open()
'UserForm1.Show
'End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
    initCombo
End Sub

Private Sub initCombo()
Dim ws As Worksheet
Dim derlig As Long
Dim lig As Long
Dim i As Long

    Set ws = ThisWorkbook.Worksheets("CRNET-CDE")
    derlig = ws.Range("A" & Rows.Count).End(xlUp).Row
    ReDim Preserve myTab(ind)
    For lig = 2 To derlig
        If ModTools.DoesExistRef(ws.Range("A" & lig).Value, myTab()) = False And ws.Range("F" & lig).Value <> "" Then
            ReDim Preserve myTab(ind)
            myTab(ind) = ws.Range("A" & lig).Value
            ind = ind + 1
        End If
    Next lig

    For i = LBound(myTab()) To UBound(myTab())
        Me.ComboBox1.AddItem myTab(i)
    Next i
End Sub

Je vous remercie d'avance de l'aide que vous pourrez apporter,

Bonne journée.

Laura

Bonjour

Sans le fichier qui va avec, il sera difficile d'adapter ton code ...

A te relire.

Bye !

Bonjour,

Effectivement sans le ficher, on va pas aller bien loin!

Voilà :

Bonjour,

Une possibilité :

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Set f = Sheets("CRNET-CDE")
a = f.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To a
Rows(i).Hidden = ComboBox1 <> CStr(Cells(i, 1).Value)
Next
Unload Me
End Sub

Private Sub UserForm_Initialize()
   Set f = Sheets("CRNET-CDE")
   Set MonDico = CreateObject("Scripting.Dictionary")
   a = f.Range("A2:A" & f.Range("A" & Rows.Count).End(xlUp).Row)
   For i = LBound(a) To UBound(a)
     If f.Range("F" & i + 1).Value <> "" Then MonDico(a(i, 1)) = ""
   Next i
   temp = MonDico.keys
   Call tri(temp, LBound(temp), UBound(temp))
   Me.ComboBox1.List = temp
 End Sub

Sub tri(a, gauc, droi) ' Quick sort
   ref = a((gauc + droi) \ 2)
   g = gauc: d = droi
   Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
        temp = a(g): a(g) = a(d): a(d) = temp
        g = g + 1: d = d - 1
     End If
   Loop While g <= d
   If g < droi Then Call tri(a, g, droi)
   If gauc < d Then Call tri(a, gauc, d)
 End Sub

A+

Bonjour, merci d'avoir répondu et de m'avoir aidée!

J'ai résolu mon problème

Merci beaucoup encore!

Rechercher des sujets similaires à "selectionner liste deroulante puis filtrer vba"