ListBox sous conditions VBA

Bonjour à tous.

Je ne suis pas très douée en VBA et depuis hier je bloque sur un truc certainement tout simple mais je n'y arrive pas...

Je suis en train de faire un Userform pour saisir des infos qui seront enregistrées sur une feuille Excel. Pour compléter le Userform, certaines infos sont tirées d'une autre feuille Excel (qui sert de base de données) ce qui me permet de remplir mes combobox.

Jusque là pas de soucis.

Mon problème maintenant c'est que je voudrais qu'en fonction des choix faits dans les deux premières combobox, les choix présents dans la liste box varient. (Avec le fichier joint ça sera plus simple à comprendre)

En gros, si dans les premières combobox, je choisis Modèle A + Zone 1, mes choix dans la listebox seront 1,2,3,4,5. Si je choisis Modèle A + Zone 2, les choix dans la listbox seront 1,5,6,7. Et ainsi de suite.

Sachant que le fichier joint est un modèle simplifié et que pour mon projet original, il devra y avoir beaucoup de modèles et 5 zones différentes...

Voilà, j'espère que quelqu'un aura compris mon problème et pourra m'éclairer un peu. Merci

42test.xlsm (16.11 Ko)

Bonjour,

Une piste. Je suis parti, pour l'exemple, sur le fait que les noms des modèles sont suivis d'un nombre (dans ton fichier, le 1) séparé par un espace puisque je n'en sais pas plus :

Private Sub ComboBox1_Click()
    Remplir
End Sub

Private Sub ComboBox2_Click()
    Remplir
End Sub

Sub Remplir()

    Dim Cel As Range

    If ComboBox1.Text <> "" And ComboBox2.Text <> "" Then

    With Worksheets("Feuil1"): Set plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With

        ListBox1.Clear

        For Each Cel In plage

            If Right(Cel.Value, Len(Cel.Value) - InStrRev((Cel.Value), " ")) = ComboBox1.Text _
                And Cel.Offset(, 1).Value = ComboBox2.Text Then Me.ListBox1.AddItem Cel.Offset(, 2).Value

        Next Cel

    End If

End Sub

Merci beaucoup pour cette réponse. Je suis désolée je me suis mal expliquée avec ce fichier test...

Le fichier envoyé étant un exemple, il n'y a pas de numéro après les noms des modèles... les noms des mobèles sont "MO", "BR", "TS" .... Ainsi pour un certains nombre. Du coup, je n'arrive pas à adapter le code que vous m'avez proposé ....

En fait les valeurs seraient plutôt comme suit :

Modèles Zone Pièce

MO Préparation Couteau

MO Préparation Base

MO Préparation Fillet

MO Assemblage Base

MO Assemblage Tige

MO Montage Fillet

BR Préparation Couteau

BR Préparation Tranches

et ainsi de suite....

Merci de votre aide !!!

Salut,

Voici une proposition basée sur le filtre avancé :

Sub M_Filtre()
With Sheets("Feuil2")
    Sheets("Feuil1").Columns("A:C").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=.Range("F1:G2"), CopyToRange:=.Range("I1"), Unique:=False
End With
End Sub

Chaque changement d'une Combobox modifie la zone de critère et le résultat

du filtrage est passé à la ListBox via sa propriété RowSource.

A+

H

104test-listes.xlsm (23.42 Ko)

C'est bon j'ai réussi à m'en sortir avec la proposition de Theze ! En comprenant chaque bout de code ça va toute de suite mieux

Merci !!!

LordNelson je garde ta proposition sous le coude ça peut toujours servir.

Encore merci !

Rechercher des sujets similaires à "listbox conditions vba"