VBA EXCEL - données multiples listbox
Résolu
malbjp
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
magi123 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
magi123 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour
Je voudrais sélectionner plusieurs nombres à partir d'une listbox et pouvoir les récupérer pour les utiliser ensuite.
Par le biais de la fenêtre Exécution, ces nombres apparaissent mais comment les récupérer pour les stocker dans des variables.
La fenêtre Exécution peut-elle être insérée dans une procédure ?
Merci de vos suggestions.
Je voudrais sélectionner plusieurs nombres à partir d'une listbox et pouvoir les récupérer pour les utiliser ensuite.
Par le biais de la fenêtre Exécution, ces nombres apparaissent mais comment les récupérer pour les stocker dans des variables.
La fenêtre Exécution peut-elle être insérée dans une procédure ?
Merci de vos suggestions.
7 réponses
Je t'ai fait un petit exemple. Un Form avec une ListBox et un bouton.
A l'initialize du Form (option MultiSelect), un met en place une liste d'items.
Après avoir choisi plusieurs éléments, en cliquant sur le bouton, on stocke la sélection dans les cellules de la colonne A de Feuil1.
A l'initialize du Form (option MultiSelect), un met en place une liste d'items.
Après avoir choisi plusieurs éléments, en cliquant sur le bouton, on stocke la sélection dans les cellules de la colonne A de Feuil1.
Private Sub UserForm_Initialize() ListBox1.Clear ListBox1.AddItem "tata" ListBox1.AddItem "tete" ListBox1.AddItem "titi" ListBox1.AddItem "tintin" ListBox1.AddItem "toto" ListBox1.AddItem "toutou" ListBox1.AddItem "tutu" ListBox1.AddItem "tyty" End Sub Private Sub CommandButton1_Click() Dim I As Integer, J As Integer Sheets("Feuil1").Range("A1:A8").ClearContents J = 0 For I = 0 To 7 If ListBox1.Selected(I) Then J = J + 1 Sheets("Feuil1").Cells(J, 1).Value = ListBox1.List(I) End If Next End SubEvidemment, on peut stocker aussi les valeurs dans un tableau plutôt que dans une feuille, etc. Ensuite on en fait ce qu'on veut...
Bonjour malbjp,
Une méthode, par exemple : utiliser la propriété Selected. Si tu as 10 items dans ta liste (indexés de 0 à 9), tu peux faire une boucle :
Une méthode, par exemple : utiliser la propriété Selected. Si tu as 10 items dans ta liste (indexés de 0 à 9), tu peux faire une boucle :
For i = 0 To 9 If ListBox1.Selected(i) = True Then '<l'item a été sélectionné> End If Next iSelected est à True si l'item est sélectionné, et à False sinon.
Bonsoir
Merci de t'intéresser à mon problème...
Voilà ce que j'ai mis dans le contrôle Valider
Private Sub valid_Click()
Dim compt
For compt = 0 To (listchoix.ListCount - 1)
If listchoix.Selected(compt) = True Then
Debug.Print listchoix.List(compt)
End If
end sub
mais comment faire pour récupérer la sélection 1, 7 et 9 par exemple, pour pouvoir les utiliser ensuite ?
si tu as une idée je suis preneur ... merci
Merci de t'intéresser à mon problème...
Voilà ce que j'ai mis dans le contrôle Valider
Private Sub valid_Click()
Dim compt
For compt = 0 To (listchoix.ListCount - 1)
If listchoix.Selected(compt) = True Then
Debug.Print listchoix.List(compt)
End If
end sub
mais comment faire pour récupérer la sélection 1, 7 et 9 par exemple, pour pouvoir les utiliser ensuite ?
si tu as une idée je suis preneur ... merci
Salut, en fait c'est tout simple, tu fais une boucle balayant les valeurs de ta liste et pour chacune ".Selected(index)" te permet de savoir si elle est ou non sélectionnée et ".List(index)" te donne sa valeur.
Donc en code, cela donnerait quelque chose du genre :
(je suppose qu'il y a N lignes dans la liste)
for i = 0 to N-1
If ListBox.Selected(i) then
msgbox "la valeur suivante est sélectionnée : " & ListBox.List(i)
end if
next i
Donc en code, cela donnerait quelque chose du genre :
(je suppose qu'il y a N lignes dans la liste)
for i = 0 to N-1
If ListBox.Selected(i) then
msgbox "la valeur suivante est sélectionnée : " & ListBox.List(i)
end if
next i
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question