Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Listbox Werte mit Komma trennen
12.04.2020 12:11:37
MarC
Hallo und frohe Ostern alle,
ich habe gerade eine Multiselect Listbox mit einer Textbox verknüpft und möchte das die einzelnen Begriffe, welche in die Textbox übertragen werden, mit einem Komma und einem Leerzeichen getrennt werden. Mein Problem ist das bei mir immer ein Komma und leer eingetragen werden und nicht nur zwischen zwei Begriffe. Wie macht man denn so was ich komme gerade nicht drauf?
Mein Code sieht aktuell so aus:
Private Sub cmb_Uebernehmen_Click()
Dim i As Integer
uf_Stelle_anlegen.TextBoxStandort.Value = ""
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
uf_Stelle_anlegen.TextBoxStandort.Text = uf_Stelle_anlegen.TextBoxStandort.Text  _
& .List(i) & ", "
End If
Next i
End With
Unload Me
End Sub

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox Werte mit Komma trennen
12.04.2020 12:32:50
Werner
Hallo,
meinst du so?
uf_Stelle_anlegen.TextBoxStandort.Text = uf_Stelle_anlegen.TextBoxStandort.Text  _
& ", " & .List(i)
Gruß Werner
AW: Listbox Werte mit Komma trennen
12.04.2020 12:36:47
MarC
Hallo Werner,
das habe ich auch schon versucht. Dann steht das Komma vor dem ausgewählten Begriff.
Beispiel:
Wenn ich nur einen Begriff auswähle sollte in der Textbox nur der Begriff stehen ohne Komma also so "München"
Wenn ich zwei oder mehrere Begriffe in der Listbox auswähle sollte es so aussehen:
"München, Hamburg, Berlin"
Gruß MarC
AW: Listbox Werte mit Komma trennen
12.04.2020 13:35:50
Werner
Hallo,
dann so:
If Len(uf_Stelle_anlegen.TextBoxStandort) Then
uf_Stelle_anlegen.TextBoxStandort = uf_Stelle_anlegen.TextBoxStandort _
& ", " & .List(i)
Else
uf_Stelle_anlegen.TextBoxStandort = .List(i)
End If
Gruß Werner
Anzeige
Danke für eure Hilfe
12.04.2020 13:57:31
MarC
Danke Werner so geht es, aber ich verstehe nicht ganz warum? Wieso wird jetzt kein überflüssiges Komma mehr am Schluss angehängt? Kannst du mir das erklären? Der Code sieht jetzt wie folgt aus:
Private Sub cmb_Uebernehmen_Click()
Dim i As Integer
uf_Stelle_anlegen.TextBoxStandort.Value = ""
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
If Len(uf_Stelle_anlegen.TextBoxStandort) Then
uf_Stelle_anlegen.TextBoxStandort = uf_Stelle_anlegen.TextBoxStandort & ", " _
& .List(i)
Else
uf_Stelle_anlegen.TextBoxStandort = .List(i)
End If
End If
Next i
End With
Unload Me
End Sub

Anzeige
Es ist doch ganz einfach
12.04.2020 14:07:59
Daniel
Du hast immer ein Trennzeichen weniger als Einzelne Inhalte.
Also wird immer der erste Inhalt - wenn die Textbox noch leer ist - ohne Trennzeichen in die Textbox geschrieben und alle folgenden dann mit.
Das erfordert aber eine ständige Prüfung innerhalb der Schleife.
Daher bevorzuge ich es, das Nicht benötigte Trennzeichen am Ende zu entfernen und die Schleife so kurz wie möglich zu belassen
Gruß Daniel
AW: Danke für eure Hilfe
12.04.2020 14:12:33
Werner
Hallo,
'hier wird die Länge (len) des Wertes der Textbox geprüft
'ist der Wert von Len größer 0, dann steht was in der Textbox
If Len(uf_Stelle_anlegen.TextBoxStandort) Then
'in diesem Fall wird der Wert in der Textbox genommen, Komma und Leer
'angefügt und dann der Wert von .List(i) angefügt
uf_Stelle_anlegen.TextBoxStandort = uf_Stelle_anlegen.TextBoxStandort _
& ", " & .List(i)
Else
'Ergibt Len 0, dann ist die Textbox leer und
'es wird nur der Wert aus List(i) in die Textbox eingefügt
uf_Stelle_anlegen.TextBoxStandort = .List(i)
End If
Gruß Werner
Anzeige
AW: Danke für eure Hilfe
12.04.2020 14:15:45
MarC
Jetzt kann ich es nachvollziehen danke. Die Definition von Microsoft zu Len habe ich nicht so ganz verstanden ^^
Gerne u. Danke für die Rückmeldung. o.w.T.
12.04.2020 15:13:51
Werner
Man hätte auch einfach schreiben können
12.04.2020 18:37:28
Daniel

If uf...Text  ""

Das wäre funktional das gleiche und jeder hätte es verstanden.
LEN ist die Länge eines Textes (Anzahl Zeichen) und VBA interpretiert eine 0 als Falsch und jede andere Zahl als Wahr, wenn Zahlen anstelle von Wahrheitswerten verwendet werden.
Frohe Ostern, Daniel
AW: Listbox Werte mit Komma trennen
12.04.2020 12:42:48
Daniel
HI
füge so wie von Werner vorgeschlagen, das Komma vorne ein.
Dann kannst du das überzählige Komma am Anfang so einfach entfernen:
uf...text = mid(uf...text, 3)

Frohe Ostern Daniel
Anzeige
AW: Listbox Werte mit Komma trennen
12.04.2020 13:49:42
MarC
Hallo Daniel, das funktioniert leider nicht. Wenn ich es so mache wir das Komma immer weggelassen un die Begriffe stehen wie vorher nicht getrennt zusammen.
AW: Listbox Werte mit Komma trennen
12.04.2020 13:53:04
Daniel
Wann hast du das eingefügt?
Das kommt erst am Schluss nach der schleife, wenn alle Begriffe mit Trennzeichen in der Textbox stehen.
AW: Listbox Werte mit Komma trennen
12.04.2020 14:03:50
MarC
Hhaha okay das wusste ich nicht =D jetzt geht es auch mit deiner Variante ^^
Vielen Dank Daniel
AW: Listbox Werte mit Komma trennen
12.04.2020 14:09:30
Daniel
Ein bisschen mitdenken beim Programmieren schadet nie.

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige