• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

ListBox of ComboBox ??

Status
Niet open voor verdere reacties.

novec

Gebruiker
Lid geworden
6 jan 2009
Berichten
194
Hallo

Ik ben een userform aan het maken waarbij de gebruiker uit meer regels moet kunnen selecteren. Een listbox met de MultieSelect eigenschap lijkt dan de mooiste manier.
Maar de geselecteerde items moeten naar 1 cell in een tabel ingevoegd worden en gescheiden zijn door een komma.

Dan lijkt de combobox de betere manier maar daar kan ik niet meerdere items kiezen.
Voor de goede orde ik zoek de notering zoals in de tabel in de kolom 'Merk' op de 1e regel nu staat. (zie aangehangen TestSheet)

Ik heb natuurlijk een bestandje bijgevoegd.

Bekijk bijlage TestListbox.xlsm

Dank alvast voor de hulp.

Steven
 
Tenzij je absoluut een U-form wilt gebruiken,
kan dit ook met gegevensvalidatie.
 

Bijlagen

Dank voor je bericht.

Dat zou een oplossing kunnen zijn maar ik probeer de sheet zo in te richten dat de gebruiker daar niet in komt.

Ik hoop dus nog op andere oplossingen.

Dank.
 
Zoiets?
Code:
Dim lst As String
Dim i As Integer
    lst = ""
    If Not lstMerk.ListIndex = -1 Then
        For i = 0 To lstMerk.ListCount - 1
            If Not lst = "" Then lst = lst & ", "
            If lstMerk.Selected(i) Then lst = lst & lstMerk.List(i)
        Next i
    End If
    ActiveCell.Offset(0, 1).Value = lst
 
Kan nog iets korter:
Code:
    lst = ""
    If Not lstMerk.ListIndex = -1 Then
        For i = 0 To lstMerk.ListCount - 1
            If lstMerk.Selected(i) Then lst = lst & IIf(lst = "", "", ", ") & lstMerk.List(i)
        Next i
    End If
    ActiveCell.Offset(0, 1).Value = lst
 
Mooi man!!!

Dit doet precies wat ik wil.
Bedankt.

Steven
 
Code:
Private Sub cmbSluit_Click()
    For j = 0 To lstMerk.ListCount - 1
       If lstMerk.selected(j) Then c00 = c00 & "," & lstMerk.list(j)
    Next
    ActiveCell.Offset(, 1) = Mid(c00, 2)
End Sub
 
Code:
ActiveCell.Offset(, 1) = Mid(c00, 2)
Wat er niet in zit, hoef je er ook niet uit te halen :).
 
Code:
lst = ""

Wat leeg is hoef je niet leeg te maken ;)
 
Klopt; de code kwam uit een routine waar hij niet altijd leeg was. In het kader van 'minder = meer' mag hij weg.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan