Listbox dépendant d'une combobox

kioups Messages postés 6 Date d'inscription dimanche 29 novembre 2009 Statut Membre Dernière intervention 9 juillet 2005 - 8 juil. 2005 à 15:24
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 - 9 juil. 2005 à 20:07
Bonjour, je débute en VBA, je suis sur un projet Excel et je cherche à avoir dans un même Userform une ListBox dépendant d'une Combobox.
A l'ouverture, ma Combobox est correctement rempli, malheureusement, je n'arrive pas à modifier ma ListBox qui reste désespérément vide...

Exemple : Si je choisis Garçon dans ma Combobox, je veux des prénoms de garçons dans ma listebox et si je choisis fille, je veux des prénoms féminins dans ma Listbox!

Voili, voilou!!!

Merci bien à ceux qui sauront m'éclairer!!

Ludo

10 réponses

jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
8 juil. 2005 à 15:40
Bonjour,

Il faudrait un peu plus d'explication.Comment se présente ta feuille
Excel, tu as des champs pour les noms et prénoms de garçons et de
fille????

Par exemple la Colonne A Garçons, la colonne B Filles ect....???



jpleroisse
0
kioups Messages postés 6 Date d'inscription dimanche 29 novembre 2009 Statut Membre Dernière intervention 9 juillet 2005
8 juil. 2005 à 16:00
Alors...

Dans ma feuille Excel, j'ai une colonne avec les prénoms (ma colonne B) et une autre avec les sexes (garçon ou fille)... tout en sachant que dans mon cas, j'ai 18 sexes différents... et c'est variable... A ce propos, je me suis un peu raté pour rentrer mes 18 items mais bon... ils sont là!
0
kioups Messages postés 6 Date d'inscription dimanche 29 novembre 2009 Statut Membre Dernière intervention 9 juillet 2005
8 juil. 2005 à 16:19
En fait, j'ai donc fait une Sub Userform_Initialize

Et dans cette Sub, j'ai une dim Sexe qui doit prendre la valeur sélectionnée dans ma Combobox, mais elle ne fait que choisir celle initialement sélectionnée, c'est-à-dire rien... Si je change la valeur dans ma combobox, rien ne se passe...

Ludo
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
8 juil. 2005 à 16:21
Re,

Là, franchement, je ne vois pas comment faire si les prénoms de garçons et filles sont mélangés dans une seule colonne.

Si tu avais, par exemple dans la colonne B tous les prénoms des garçons
et dans la colonne C, tous les prénoms des filles, à ce moment on
pourrait fair un code du genre

If Combobox1.Text = "Garçons" Then (ou un Select Case)

et ici un code pour mettre tous les prénoms des garçons dans la ListBox,

Idem pour filles.



jpleroisse
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kioups Messages postés 6 Date d'inscription dimanche 29 novembre 2009 Statut Membre Dernière intervention 9 juillet 2005
8 juil. 2005 à 16:40
Le problème, c'est que quand ma Userform s'ouvre, la valeur combobox1.Text est vide... et si je change la valeur, ça ne change pas...
Je vois pas le souci par contre pour le fait qu'il n'y est qu'une colonne, une simple recherche dans mon tableau et ça doit marcher...
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
8 juil. 2005 à 17:14
Si la Combobox se rempli à l'ouveture de ton UserForm, mets

Combobox1.ListIndex = 0 à la fin de la procédure, la 1 ère valeur doit apparaître dans la partie texte.



jpleroisse
0
kioups Messages postés 6 Date d'inscription dimanche 29 novembre 2009 Statut Membre Dernière intervention 9 juillet 2005
8 juil. 2005 à 22:25
Marche pas, j'ai toujours un problème...

Sub Userform_Initialize()
'Remplissage de la zone de liste
Dim NbProduits As Integer
Dim Rayon As String
NbProduits = Sheets("Inventaire").Cells(4, 5).Value
For i = 1 To 18
ComboBox1.AddItem Sheets("Inventaire").Cells(7 + i, 5).Value
Next i
Rayon = ComboBox1.Text
For j = 1 To NbProduits
If Sheets("Inventaire").Cells(3 + j, 1).Value = Rayon Then
ListBox1.AddItem Sheets("Inventaire").Cells(3 + j, 2).Value
End If
Next j
ComboBox1.ListIndex = 0

End Sub

Voilà ma procédure... Après un pas à pas détaillé, je me rends compte que Rayon est vide... A priori, ça devrait être égal à mon premier item...
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
9 juil. 2005 à 12:25
Bonjour,

Essaye de placer Combobox1.ListIndex 0, juste avant Rayon Combobox1.text.

J'ai essayé ton code, après quelques tatonnements pour remplir les bonnes cellules, il fonctionne.



jpleroisse
0
kioups Messages postés 6 Date d'inscription dimanche 29 novembre 2009 Statut Membre Dernière intervention 9 juillet 2005
9 juil. 2005 à 17:57
Merci beaucoup! On se rapproche, mais manque encore un petit truc...

Là, quand ma Userform s'ouvre, j'ai mon premier item de ma combobox qui est sélectionné et les items correspondants dans ma listbox. Malheureusement, quand je change l'item de ma combobox, ma listbox reste inchangée... Ce que j'aimerai, c'est que la listbox change quand je me déplace dans ma combobox... Honnêtement, je sais pas si c'est possible, mais bon...

Ludo
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
9 juil. 2005 à 20:07
Bonjour,

Je pens que c'est normal, puisque l évènement Initialize à eu lieu, Il
te faut placer un code dans l'évènement (Change où Click) de la
Combobox, du genre.



If Combobox1.Text = "xxx"

ici le code1 pour remplir la Listbox

ElseIf Combobox1.Text = "yyy"

ici le code2 pour remplir la ListBox

ElseIf ect.....

End If



où si tu n'as pas trop de données dans le combobox, un select case

Select Case Combobox1.ListIndex

Case 0 (1er Item)

code1 pour remplir la ListBox

Case 1 (2ème Item)

code2 pour remplir la ListBox

ect....

End Select



jpleroisse
0