ListBox
Tam
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 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

capture d écran de l'indispenasble
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G

Bonjour,
'sur choix temps reel
ou avec un bouton pour traitement des choix
'sur choix temps reel
Private 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 choix
Private 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
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:
pour l'initialisation de l'UF, les cellules C3 et C4 sont de quelle feuille ?????
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 ?????