Combobox vba [Résolu]

Signaler
Messages postés
2
Date d'inscription
vendredi 11 janvier 2008
Statut
Membre
Dernière intervention
4 mars 2008
-
Messages postés
114
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
20 mars 2008
-
Bonjour,
Je suis débutante, j'arrive à créer des combobox dans un userforme, je fais comme ceci.
J'arrive à rentrer des donnée dans un userform, mais là ou je suis coinsé c'est lorsque je veux utiliser mon combobox pour afficher seulement les données qui correspondent à la lgine de combobos que j'ai cliqué. il ne se produit absolument rien.
Je vous remercie de votre aide.

Private Sub UserForm_Initialize()
'remplissage de la cbox domaine
Set objdom = Application.ThisWorkbook.Worksheets.Item("domaine")
Let lngNBligne = 2
Let liste_dom.ColumnCount = 2
Let liste_dom.ColumnWidths = "0;50"
Let liste_dom.Font.Size = 10
Do While objdom.Cells(lngNBligne, 1) <> ""
    Me.liste_dom.AddItem
    Me.liste_dom.List(lngNBligne - 2, 0) = objdom.Cells(lngNBligne, 1).Value
    Me.liste_dom.List(lngNBligne - 2, 1) = objdom.Cells(lngNBligne, 2).Value
   
    lngNBligne = lngNBligne + 1
Loop
End Sub

Private Sub liste_dom_Click()  lorsque je clic rien ne change
Dim lngPrcourligne As Long
Dim i As Integer


Let lngNBligne2 = 0
Set objdom = Application.ThisWorkbook.Worksheets.Item("domaine")
Set objsect = Application.ThisWorkbook.Worksheets.Item("secteur")
Let lngPrcourligne = 2
Let lngNBligne = 2


Let ListBoxdom.ColumnCount = 4
Let ListBoxdom.ColumnWidths = "0;0;200;200"
Let ListBoxdom.Font.Size = 10
'remplissage de la liste


Do While objsect.Cells(lngPrcourligne, 1) <> ""
    If ListBoxdom.ListIndex = Me.liste_dom.ListIndex Then
    Me.ListBoxdom.AddItem
    Me.ListBoxdom.List(lngPrcourligne - 2, 0) = objsect.Cells(lngPrcourligne, 1)
    Me.ListBoxdom.List(lngPrcourligne - 2, 1) = objsect.Cells(lngPrcourligne, 2)
    Me.ListBoxdom.List(lngPrcourligne - 2, 2) = objsect.Cells(lngPrcourligne, 3)
    Me.ListBoxdom.List(lngPrcourligne - 2, 3) = objsect.Cells(lngPrcourligne, 4)
    lngNBligne = lngNBligne + 1
    End If
    Let lngPrcourligne = lngPrcourligne + 1
Loop




















 

3 réponses

Messages postés
114
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
20 mars 2008

Salut,
2 solutions suivant comment tu as tes données :

* soit tu as une base de données avec tout dedans donc dans ce cas là tu ecris en SQL une requete selection du style : "select * from [matable] where [titre de mon champs]='" & combobox.text & "'"

* soit tu n'as pas de base de donnée dans ce cas tu remplies ta liste box avec tes élements associés (comme tu sais deja le faire) que quand une selection dans le combo est faite.
Du style :

Private Sub ComboBox1_Change()


    UserForm1.ListBox.Clear
   
Select Case ComboBox1.Text

Case "choix1"
    UserForm1.ListBox.AddItem "SousChoix1A"
    UserForm1.ListBox.AddItem "SousChoix1B"
...etc...

Case "choix2"
    UserForm1.ListBox.AddItem "SousChoix2A"
    UserForm1.ListBox.AddItem "SousChoix2B"
...etc...
End Select
End Sub

A+

Cliff le bouffeur

(N'oubliez pas de valider vos questions si les réponses vous conviennent)
Messages postés
114
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
20 mars 2008

Salut,
pas très claire tes explications et ton code !
Peux-tu nous réexpliquer ce que tu essaies de faire ?

Cliff le bouffeur
Messages postés
2
Date d'inscription
vendredi 11 janvier 2008
Statut
Membre
Dernière intervention
4 mars 2008

Salut,
j'essai de faire:
lorsque je choisis dans mon combobox une ligne, je souhaiterai qu'il n'apparaissent dans ma listbox les éléments correspond au choix effectué sur le combo box.

exemple dans mon combobs j'ai differnets theme
blanchisserie
archéologie
fourniture de bureau

dans ma liste box, j'ai tous mes thèmes avec des élements associés.
Je souhaiterai par exemple, lorsque je choisis blanchisserie, il apparait dans ma list box seulement les éléments de blanchisserie

voili voilou

merci pour votre aide