Recup multiselection de listbox dans une cellule
jpub
Messages postés
43
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je me permet de venir vous car j'ai un petit problème avec une listbox autorisant la multiselection.
j'initialise ma listbox au lancement de l'userform de la façon suivante :
jusque là, pas de problème et je voudrais récupérer les sélections dans une cellule en les séparant par un "&".
Voilà ce que j'ai écrit (source web modifié)
mais le problème et que cela ne marche pas et ne récupère qu'une seule valeur.
L'un de vous aurait-il une solution ?
Merci d'avance.
Cordialement,
Jonathan
je me permet de venir vous car j'ai un petit problème avec une listbox autorisant la multiselection.
j'initialise ma listbox au lancement de l'userform de la façon suivante :
Private Sub UserForm_Activate()
' charge les listboxs à l'ouverture de l'userform
Dim i As Long
' remplissage Type de devis
ListBox1.MultiSelect = 1 ' permet la multiselection
With ThisWorkbook.Worksheets("REFERENTIELS")
For i = 3 To 50
ListBox1.AddItem .Cells(i, 4)
Next i
End With
End sub
jusque là, pas de problème et je voudrais récupérer les sélections dans une cellule en les séparant par un "&".
Voilà ce que j'ai écrit (source web modifié)
Private Sub CommandButton1_Click()
For i = 0 To Me.ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ThisWorkbook.Worksheets("TEST").Range("A1").Value = " " & "&"ListBox1.List(i)
End If
Next i
end sub
mais le problème et que cela ne marche pas et ne récupère qu'une seule valeur.
L'un de vous aurait-il une solution ?
Merci d'avance.
Cordialement,
Jonathan
2 réponses
-
Bonjour,
Il faut remplacer:ThisWorkbook.Worksheets("TEST").Range("A1").Value = " " & "&"ListBox1.List(i)
Par:ThisWorkbook.Worksheets("TEST").Range("A1").Value = ThisWorkbook.Worksheets("TEST").Range("A1").Value & " " & ListBox1.List(i)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau -
Super merci,
mais cela ne marche pas, j ai une erreur d'exécution de type 9
(l indice n'appartient pas à la sélection)
pour info mes listbox se chargent au démarrage avec unePrivate Sub UserForm_Activate()
et la répération des sélections de ces listbox se fait dans unePrivate Sub CommandButton1_Click()
Merci encorePrivate Sub UserForm_Activate() Dim i As Long ' charge les listboxs à l'ouverture de l'userform ' remplissage Type de devis ListBox1.MultiSelect = 1 ' permet la multiselection With ThisWorkbook.Worksheets("REFERENTIELS") For i = 3 To 50 ListBox1.AddItem .Cells(i, 4) Next i End With END SUB Private Sub CommandButton1_Click() For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then ThisWorkbook.Worksheets("DEVIS").C("A1").Value = ThisWorkbook.Worksheets("DEVIS").Range("A1").Value & " " & ListBox1.List(i) End If Next i END SUB
Jonathan-
correction de la seconde partie mais ça ne marche toujours pas
Private Sub CommandButton1_Click() For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then ThisWorkbook.Worksheets("DEVIS").Range("A1").Value = ThisWorkbook.Worksheets("DEVIS").Range("A1").Value & " " & ListBox1.List(i) End If Next i end sub -
Bonjour,
Essayez ceci :
Private Sub CommandButton1_Click() Dim MonString As String For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then MonString = MonString & " " & ListBox1.List(i) End If Next i With ThisWorkbook.Worksheets("DEVIS").Range("A1") .Value = MonString End With End sub
EDIT : mes amitiés à Polux31 au passage
-