XL 2010 Alimenter 2 Combobox avec des Array différents

jim7963

XLDnaute Junior
Bonjour à tous,

j'imagine que la réponse à ma question doit être toute bête, sauf que malgré mes recherches je n'arrive pas à la trouver. Je fais donc appel à vos lumières pour m'éclairer.

J'ai créé un UserForm avec 2 Combobox différentes.
Le Combobox1 s'alimente avec un Array, cette partie là fonctionne, pas de souci.
Par contre j'aimerais que quand je change la valeur dans ce Combobox1, le Combobox2 me propose une liste qui dépend de la valeur choisie dans le Combobox1.

J'ai donc écrit le code suivant:

Code:
Dim Secteur As Variant, Secteur2 As String, Rayon As Variant, Rayon2 As String, l As Integer, k As Integer

Private Sub UserForm_Initialize()
    
Me.StartUpPosition = 2


Me.ComboBox1.Clear

Secteur = Array("ELDPH", "Produits Frais", "Bazar", "Textile", "Services", "Station")


For l = LBound(Secteur) To UBound(Secteur)
    ComboBox1.AddItem (Secteur(l))
Next


Secteur2 = ComboBox1.Text


End Sub
__________________________________________________________________________________________


Private Sub ComboBox1_change()

Me.ComboBox2.Clear

Select Case Secteur2


Case "ELDPH"


Rayon = Array("ELDPH", "EPICERIE", "LIQUIDES", "ENTRETIEN", "BEAUTE SANTE")


For k = LBound(Rayon) To UBound(Rayon)
    ComboBox2.AddItem (Rayon(k))
Next


Case "Produits Frais"


Rayon = Array("Produits Frais", "BVP", "PAT INDUSTRIELLE", "SURGELES", "FROMAGE A LA COUPE", "CREMERIE L.S", "FRUITS ET LEGUMES", "FLEURS ET PLANTES", "CHARC.TRAIT.SAUC.SECS LS", "CHARCT.TRAIT.TRADT.", "VOL.LS INDUST.", "BOUCH.LS.INDUST.", "BOUCH.VOL.TRAD.", "BOUCH.ATELIER TRADT.", "BOUCHERIE FRAICHE PREEMBALLEE", "VOLAILLE TRAD.", "POISSONNERIE")


For k = LBound(Rayon) To UBound(Rayon)
    ComboBox2.AddItem (Rayon(k))
Next


Case "Bazar"


Rayon = Array("Bazar", "EQUIPEMENT DE LA MAISON", "CULTURE", "PAPETERIE ECRITURE", "LIBRAIRIE", "MAROQUINERIE", "IMAGE ET SON", "SUPPORTS VIERGES", "CADRE / SOUS-VERRE / ALBUM", "DEVELOPPEMENT PHOTO", "LOISIRS", "BRICOLAGE JARDINAGE AUTO", "BAZAR A SERVICE", "PRESSE")


For k = LBound(Rayon) To UBound(Rayon)
    ComboBox2.AddItem (Rayon(k))
Next


Case "Textile"


Rayon = Array("Textile", "VETEMENT", "VETEMENT LAYETTE", "VETEMENT ENFANT 2-8 ANS", "VETEMENT ADO 10-16 ANS", "VETEMENT FEMME", "VETEMENT HOMME", "SOUS -VETEMENT", "COLLANT -CHAUSSETTES", "EQUIPEMENT", "CHAUSSURE", "BIJOUTERIE", "BOUTIQUE OR")


For k = LBound(Rayon) To UBound(Rayon)
    ComboBox2.AddItem (Rayon(k))
Next


Case "Services"


Rayon = Array("Services", "S.A.V.", "VENTE A LA COMMISSION", "PRESTATIONS LS", "VENTE DE SERVICES", "Location U")


For k = LBound(Rayon) To UBound(Rayon)
    ComboBox2.AddItem (Rayon(k))
Next


Case "Station"


Rayon = Array("Station", "CARBURANT", "GAZ", "LAVAGE")


For k = LBound(Rayon) To UBound(Rayon)
    ComboBox2.AddItem (Rayon(k))
Next


End Select


Rayon2 = ComboBox2.Text


End Sub


Le Private Sub UserForm_Initialize() fonctionne très bien par contre quand je sélectionne un choix, le Private Sub ComboBox1_change() lui ne fonctionne pas car mon Combobox2 reste désespérément vide.

J'ai essayé plusieurs variantes mais rien n'y fait. Est-ce que quelqu'un aurait une idée?

En vous remerciant par avance de votre aide.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Alimenter 2 Combobox avec des Array différents

Bonjour Jim, bonjour le forum,

Essaie comme ça :
Code:
Private Secteur As Variant, Rayon As Variant

Private Sub UserForm_Initialize()
Me.StartUpPosition = 2
Me.ComboBox1.Clear
Secteur = Array("ELDPH", "Produits Frais", "Bazar", "Textile", "Services", "Station")
Me.ComboBox1.List = Secteur
End Sub

Private Sub ComboBox1_change()
Me.ComboBox2.Clear
Select Case Me.ComboBox1.Value
    Case "ELDPH"
        Rayon = Array("ELDPH", "EPICERIE", "LIQUIDES", "ENTRETIEN", "BEAUTE SANTE")
    Case "Produits Frais"
        Rayon = Array("Produits Frais", "BVP", "PAT INDUSTRIELLE", "SURGELES", "FROMAGE A LA COUPE", "CREMERIE L.S", "FRUITS ET LEGUMES", "FLEURS ET PLANTES", "CHARC.TRAIT.SAUC.SECS LS", "CHARCT.TRAIT.TRADT.", "VOL.LS INDUST.", "BOUCH.LS.INDUST.", "BOUCH.VOL.TRAD.", "BOUCH.ATELIER TRADT.", "BOUCHERIE FRAICHE PREEMBALLEE", "VOLAILLE TRAD.", "POISSONNERIE")
    Case "Bazar"
        Rayon = Array("Bazar", "EQUIPEMENT DE LA MAISON", "CULTURE", "PAPETERIE ECRITURE", "LIBRAIRIE", "MAROQUINERIE", "IMAGE ET SON", "SUPPORTS VIERGES", "CADRE / SOUS-VERRE / ALBUM", "DEVELOPPEMENT PHOTO", "LOISIRS", "BRICOLAGE JARDINAGE AUTO", "BAZAR A SERVICE", "PRESSE")
    Case "Textile"
        Rayon = Array("Textile", "VETEMENT", "VETEMENT LAYETTE", "VETEMENT ENFANT 2-8 ANS", "VETEMENT ADO 10-16 ANS", "VETEMENT FEMME", "VETEMENT HOMME", "SOUS -VETEMENT", "COLLANT -CHAUSSETTES", "EQUIPEMENT", "CHAUSSURE", "BIJOUTERIE", "BOUTIQUE OR")
    Case "Services"
        Rayon = Array("Services", "S.A.V.", "VENTE A LA COMMISSION", "PRESTATIONS LS", "VENTE DE SERVICES", "Location U")
    Case "Station"
        Rayon = Array("Station", "CARBURANT", "GAZ", "LAVAGE")
End Select
Me.ComboBox2.List = Rayon
End Sub
 

Discussions similaires

Réponses
3
Affichages
562

Statistiques des forums

Discussions
312 108
Messages
2 085 372
Membres
102 876
dernier inscrit
BouteilleMan