Recup multiselection de listbox dans une cellule [Fermé]

Signaler
Messages postés
43
Date d'inscription
mardi 10 mai 2011
Statut
Membre
Dernière intervention
19 janvier 2016
-
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
-
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 :

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

Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 160
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
Messages postés
43
Date d'inscription
mardi 10 mai 2011
Statut
Membre
Dernière intervention
19 janvier 2016
1
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 une
Private Sub UserForm_Activate()
et la répération des sélections de ces listbox se fait dans une
 Private Sub CommandButton1_Click()
Merci encore


Private 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
Messages postés
43
Date d'inscription
mardi 10 mai 2011
Statut
Membre
Dernière intervention
19 janvier 2016
1
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
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 607
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