ListBox
Tam
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis débutant en VBA.
J'ai un petit soucis, je n'arrive pas à récuperer la sélection multiple de ma listbox.
l'utilisateur doit choisir dans la listbox ce qu'il souhaite selectionner à l'aide du clique de la souris. Je souhaiterais récuperer la sélection (qui peut être multiple).
Private Sub LB01_Selection_Click()
For j = 0 To LB01_Selection.ListCount - 1
If LB01_Selection.Selected(j) = True Then
MsgBox (LB01_Selection.Value)
End If
Next
End Sub
D'avance merci
je suis débutant en VBA.
J'ai un petit soucis, je n'arrive pas à récuperer la sélection multiple de ma listbox.
l'utilisateur doit choisir dans la listbox ce qu'il souhaite selectionner à l'aide du clique de la souris. Je souhaiterais récuperer la sélection (qui peut être multiple).
Private Sub LB01_Selection_Click()
For j = 0 To LB01_Selection.ListCount - 1
If LB01_Selection.Selected(j) = True Then
MsgBox (LB01_Selection.Value)
End If
Next
End Sub
D'avance merci
3 réponses
-
Bonjour
capture d écran de l'indispenasble
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G

-
Bonjour,
'sur choix temps reelPrivate Sub ListBox1_Change() For j = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(j) = True Then MsgBox ListBox1.List(j) End If Next j End Sub
ou avec un bouton pour traitement des choixPrivate Sub CommandButton1_Click() For j = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(j) = True Then MsgBox ListBox1.List(j) End If Next j End Sub -
Bonjour
Je m'excuse mais je n'y arrive pas...
mon code se fait en deux parties :
1) Ouverture du userform
Private Sub UserForm_Activate()
If Range("C3") <> "" And Range("C4") <> "" Then
LB01_Selection.RowSource = Range("C3:" & Range("C3").End(xlDown).Address).Address
LB01_Selection.MultiSelect = fmMultiSelectMulti
ElseIf Range("C3") <> "" And Range("C4") = "" Then
LB01_Selection.RowSource = Sheets("Liste").Range("C3").Address
LB01_Selection.MultiSelect = fmMultiSelectSingle
Else: LB01_Selection.RowSource = Sheets("Liste").Range("C2").Address
End If
End Sub
2) Clique sur le bouton "Valider" après selection dans la LB
Private Sub CB01_Valider_Click()
For j = 0 To LB01_Selection.ListCount - 1
If LB01_Selection.Selected(j) = True Then
MsgBox LB01_Selection.List(j)
selection = True
Else: selection = False
End If
Next
If selection = False Then
MsgBox ("sélectionner au moins un échantillon")
Exit Sub
...
Je ne comprend pas ce qui ne colle pas...
Merci pour vos réponses-
Bonjour,
Evitez de mettre des mots reserves comme Selection en nom de variable:
Private Sub CB01_Valider_Click() Sel = False For j = 0 To LB01_Selection.ListCount - 1 If LB01_Selection.Selected(j) = True Then MsgBox LB01_Selection.List(j) Sel = True End If Next j If Sel = False Then MsgBox ("sélectionner au moins un échantillon") Exit Sub End If End Sub
pour l'initialisation de l'UF, les cellules C3 et C4 sont de quelle feuille ?????
-