ListBox [Fermé]

Signaler
-
Messages postés
15753
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
7 mai 2021
-
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

3 réponses

Messages postés
16445
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
7 mai 2021
3 170
Bonjour

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


Messages postés
15753
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
7 mai 2021
1 487
Bonjour,
'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
Messages postés
15753
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
7 mai 2021
1 487
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 ?????