ListBox en cascade

Bonjour à tous,

Je débute VBA depuis peu de temps et malgré mes nombreuses recherches sur des sites et forum, je n’arrive pas à trouver mon bonheur. Je suis vraiment bloquée et j’espère que vous avez une solution.

Pour résumer, je cherche à créer un outil qui permettrait à partir d’une base de données de sélectionner des éléments pour les copier sur une fiche récap.

Dans le fichier exemple, le principe est de sélectionner un premier lot (Alpha, Beta, Gamma) dans une combobox qui par cascade transpose leurs éléments correspondants au lot sélectionné (Alpha1, Alpha2,… ou Beta1, Beta2,…) dans la Listbox1. La Listbox1 est à choix multiple avec cases à cocher. Jusque-là tout va bien.

Maintenant, je souhaite que suivant les éléments sélectionnés dans la ListBox1 les sous éléments correspondants s’affichent dans la ListBox2.

Exemple :

  • Si Alpha1 est sélectionné alors en appuyant sur OK, la Listbox2 propose Alpha1a, Alpha1b, …. Alpha1g à cocher. (suivant les listes dans la base de données).
  • Et si Alpha1 et Alpha3 sont sélectionnés, copie des deux listes correspondantes l’une à la suite de l’autre dans la ListBox2. (Le contenu sélectionné de la Listbox2 sera ensuite copié sur une feuille Excel)

J’ai essayé d’utiliser le code :

Dim NomRange As String

NomRange = ComboBox1.Value

ListBox1.List = Application.Transpose(Range(NomRange))

Qui marche très bien pour la transition de la ComboBox à la ListBox1 mais pas de la Listbox1 à la ListBox2 qui sont à choix multiple. Je n’arrive pas à créer de variables pour chaque cas.

Je vous remercie par avance en espérant que mes explications soient assez claires.

Bonjour,

Private Sub ConsultationOK_Click()
    Dim T%, U%, NomRange$
    With ListBox1
        For T = 0 To .ListCount - 1
            If .Selected(T) Then
                NomRange = .List(T)
                For U = 1 To Range(NomRange).Rows.Count
                    ListBox2.AddItem Range(NomRange).Cells(U, 1)
                Next U
            End If
        Next T
    End With
End Sub

Attention ! Beta3, Beta4 et Alpha4 ne correspondant pas à des plages nommées vont déclencher une erreur.

Cordialement

Ferrand

Bonjour,

Merci beaucoup ! C'est exactement ce que je cherchais ! Je vous remercie pour votre temps, continuez comme ça c'est très appréciable je peux désormais avancer dans mon projet !

Cordialement,

Rechercher des sujets similaires à "listbox cascade"