Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listbox mit Zeilenumbruch

Listbox mit Zeilenumbruch
13.10.2018 12:41:10
Peter
Hallo ihr Excelspezialisten,
meine UF ist fast fertig. Ich benötige noch eine Erweiterung meiner Listbox
mit Zeilenumbruch.
Im Forum habe ich hier einen Betrag gefunden. Dieser verwendet nachstehenden Code:
Private Sub UserForm_Initialize()
Dim iRow As Integer
Dim sTxt As String
iRow = 1
Do Until IsEmpty(Cells(iRow, 1))
sTxt = Cells(iRow, 1).Value
If InStr(sTxt, vbLf) Then
With lstValues
.AddItem Left(sTxt, InStr(sTxt, vbLf) - 1)
.AddItem Right(sTxt, Len(sTxt) - InStr(sTxt, vbLf))
End With
End If
iRow = iRow + 1
Loop
End Sub

Nun steige ich hier nicht ganz durch und möchte diesen auf 6 Spalten erweitern. Die Listbox beginnt jedoch mit Spalte2(B) und hat den Zeilenumbruch wie o.a. in Spalte3(C).
Könnt ihr mir hierbei bitte helfen.
Besten Dank
Gruss
Peter
Anzeige

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox mit Zeilenumbruch
13.10.2018 13:56:35
onur
"Die Listbox beginnt jedoch mit Spalte2(B) und hat den Zeilenumbruch wie o.a. in Spalte3(C)"?
Meinst du damit Deine?
Diese hier jedenfalls nicht, die macht nur einen neuen Eintrag in die Listbox.
Was GENAU möchtest DU denn erreichen?
AW: Listbox mit Zeilenumbruch
13.10.2018 14:00:23
Peter
Hallo Onur,
ich habe in meiner Listbox nachstehende Userform_Initialize:
Private Sub Userform_initialize()
Dim i As Long
With ListBox1
.Clear
.ColumnCount = 6
.ColumnWidths = "3,0 cm;4,5 cm;4,5 cm;3,0 cm;3,0 cm;3,0 cm"
For i = 9 To Cells(Rows.Count, "B").End(xlUp).Row
.AddItem Cells(i, 2) 'SpalteB in erste Spalte
.List(.ListCount - 1, 1) = Cells(i, 3) 'SpalteC in zweite Spalte
.List(.ListCount - 1, 2) = Cells(i, 4) 'SpalteD in dritte Spalte
.List(.ListCount - 1, 3) = Format(Cells(i, 5), "#,###.00 €") 'SpalteE in dritte Spalte
.List(.ListCount - 1, 4) = Format(Cells(i, 6), "#,###.00 €") 'SpalteF in dritte Spalte
.List(.ListCount - 1, 5) = Format(Cells(i, 7), "#,###.00 €")  'SpalteG in dritte Spalte
Next
End With
'End With
With Sheets("Hilfstabelle")
ComboBox1.RowSource = "Hilfstabelle!B2:B" & .Cells(Rows.Count, 2).End(xlUp).Row
End With
End Sub

Nun möchte ich erreichen, dass die Listbox den Wert von Spalte C mit Zeilenumschaltung anzeigt.
Ist das machbar?
Gruss
Peter
Anzeige
AW: Listbox mit Zeilenumbruch
13.10.2018 14:05:48
onur
Meinst du eine neue Zeile in der Listbox?
Würde ich nicht machen, das bringt nur den Code total durcheinander.
AW: Listbox mit Zeilenumbruch
13.10.2018 14:14:30
Peter
Hallo Onur,
habe mir die Datei nochmals angesehen. Die macht genau das umgekehrte was ich benötige.
Gruss
Peter
AW: Listbox mit Zeilenumbruch
13.10.2018 14:17:32
onur
Ich weiss immer noch nicht, was GENAU du benötigst.
Wenn du LineFeed-Sonderzeichen aus der Text-Variablen txt entfernen willst, brauchst du nur:
txt = Replace(txt, Chr(10), " ")

Anzeige
AW: Listbox mit Zeilenumbruch
13.10.2018 15:11:26
Peter
Hallo Onur,
der Anfang meiner Tabelle sieht wie folgt aus:
Datum Vorgang
01.01.2018 vorgegebener Saldo
02.01.2018 test
02.01.2018 test1
03.01.2018 test3
05.01.2018 test5
05.01.2018 test5
01.01.2018 test70
02.01.2018 test8
02.01.2018 test88
03.01.2018 dies ist ein test bezüglich der Zeilenlänge. dies ist ein Test bezüglich der Zeilenlänge.
04.01.2018 test9
Der Text neben Datum 03.01.2018 befindet sich in der Zelle "C19". Diese Zelle ist formatiert mit Zeilenumbruch(die gesamte Spalte).
Der Text soll jedoch in der Listbox so angezeigt werden, wie in der Tabelle:
Spalte B Spalte C Spalte D
dies ist ein test bezüglich der
Zeilenlänge. dies ist ein Test
bezüglich der Zeichenlänge.
03.01.2018 dies ist ein test bezüglich der Test1
ich hoffe ich habe dies verständlich dargestellt.
Gruss
Peter
Anzeige
AW: Listbox mit Zeilenumbruch
13.10.2018 15:28:25
onur
Poste mal die Datei.
AW: Listbox mit Zeilenumbruch
13.10.2018 18:35:24
onur
Ist ein Riesen-Aufwand für so eine Spielerei.
Wie gesagt, das schmeisst die Listbox-Indizierung total durcheinander.
Anzeige
AW: Listbox mit Zeilenumbruch
13.10.2018 18:40:01
onur
Mache lieber zusätzliche Spalten für 2. und 3. Zeile, das ist einfacher.
AW: Listbox mit Zeilenumbruch
14.10.2018 09:14:44
Peter
Hallo Onur,
das mit der Listbox ist in der Form gestorben. Es ist zumindest ohne erheblichen Aufwand nicht möglich.
Die von Dir gefundene Datei hatte ich auch schon aber die macht genau das umgekehrte, was ich bräuchte.
Ich werde nun das ganze in der Form ändern, dass ich die Textbox auf multiline ändere und damit den Text beim Anklicken der betreffenden Zeile in der Textbox lesen kann.
Übrigens das mit der weiteren Spalte ist insoweit auch nicht hilfreich, da ich noch eine andere Version benötige mit mehr Spalten und bei Additem ist bei 10 Spalten Schluss.
Nochmals besten Dank für Deine Hilfe. Wünsche Dir ein schönes Wochenende.
Gruss
Peter
Anzeige
AW: Listbox mit Zeilenumbruch
14.10.2018 11:26:04
onur
Guckst du dir die Dateien überhaupt an?
"Die von Dir gefundene Datei hatte ich auch schon"?
Das ist nicht gefunden, das ist DEINE Datei, von mir überarbeitet?
AW: Listbox mit Zeilenumbruch
14.10.2018 12:14:05
Peter
Hallo Onur,
ich habe mir die Datei sehr wohl angesehen.
Du hast Dir da auch eine Arbeit gemacht - hierfür nochmals besten Dank.
Aber das ist zu irritierend. Es sind die Zeilen zweimal vorhanden. Wenn dann nur den Text in der zweiten Zeile und nicht nochmals die Spalten B, D bis G.
Wenn das zu lösen wäre, dann müsste die Listbox perfekt funktionieren.
Gruss
Peter
Anzeige
AW: Listbox mit Zeilenumbruch gelöst
14.10.2018 13:16:27
Peter
Hallo Onur,
absolut Super, was Du mir hier gemacht hast.
Das ist genau das, was ich gesucht habe.
Vielen herzlichen Dank.
Wünsche Dir noch ein schönes Wochenende.
Für mich ist das Programmieren für Heute abgeschlossen - erfolgreich!!!
Gruss
Peter
Anzeige
AW: Listbox mit Zeilenumbruch
14.10.2018 17:51:50
Peter
Hallo Onur,
bin gerade wieder aktive. Habe mir die Sache nochmals angesehen.
Einen Punkt habe ich noch.
Wie kann ich bei Listbox1_Click erreichen, dass die Zeilen in der Textbox2 wieder zusammengefasst darge-stellt werden.
Besten Dank für Deine Hilfe.
Gruss
Peter
AW: Listbox mit Zeilenumbruch
14.10.2018 18:00:20
Peter
Hallo Onur,
habe nicht richtig nachgesehen. Klappt
Gruss
Peter
Anzeige
AW: Listbox mit Zeilenumbruch
13.10.2018 14:06:06
Peter
Hallo Onur,
habe da folgende Datei im Forum gefunden: https://www.herber.de/bbs/user/36152.xls
Die müsste doch geeignet sein meine UF entsprechend umzuschreiben.
Was meinst Du?
Gruss
Peter
Zeilenumbruch in Listbox-Felder ist nicht
13.10.2018 18:56:43
EtoPHG
möglich, Peter
so einfach ist das.
Gruess Hansueli
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Listbox mit Zeilenumbruch in Excel


Schritt-für-Schritt-Anleitung

Um eine Listbox in einer UserForm mit Zeilenumbruch zu erstellen, kannst Du folgende Schritte befolgen. Dieses Beispiel basiert auf VBA und funktioniert in Excel 2016 und neueren Versionen.

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge eine UserForm hinzu:

    • Klicke im Menü Einfügen auf UserForm.
  3. Füge eine Listbox und eine Textbox hinzu:

    • Ziehe eine Listbox (ListBox1) und eine Textbox (TextBox2) auf die UserForm.
  4. Füge den folgenden VBA-Code in das Codefenster der UserForm ein:

    Private Sub UserForm_Initialize()
       Dim iRow As Integer
       Dim sTxt As String
       iRow = 1
       Do Until IsEmpty(Cells(iRow, 1))
           sTxt = Cells(iRow, 1).Value
           If InStr(sTxt, vbLf) Then
               With ListBox1
                   .AddItem Left(sTxt, InStr(sTxt, vbLf) - 1)
                   .AddItem Right(sTxt, Len(sTxt) - InStr(sTxt, vbLf))
               End With
           End If
           iRow = iRow + 1
       Loop
    End Sub
    
    Private Sub ListBox1_Click()
       TextBox2.Value = ListBox1.Value
    End Sub
  5. Anpassen des Codes:

    • Stelle sicher, dass die Spalten in Deinem Excel-Dokument korrekt referenziert sind. Ändere den Code nach Bedarf, um die gewünschten Spalten anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: Listbox zeigt nur einen Eintrag an
    Lösung: Überprüfe, ob der Code korrekt implementiert ist und ob die Zellen in Excel die richtigen Daten enthalten.

  • Fehler: Zeilenumbruch wird nicht angezeigt
    Lösung: Stelle sicher, dass Du das richtige Zeichen für einen Zeilenumbruch (vbLf) verwendest und dass die Listbox entsprechend konfiguriert ist.


Alternative Methoden

Wenn die Listbox nicht die gewünschte Funktionalität bietet, kannst Du auch eine Textbox verwenden, um mehrzeilige Texte darzustellen. Ändere die Eigenschaften der Textbox auf MultiLine, um mehrere Zeilen anzuzeigen.

Füge dazu den folgenden Code in das ListBox1_Click-Ereignis ein:

TextBox2.MultiLine = True
TextBox2.Value = ListBox1.Value

Praktische Beispiele

Angenommen, Deine Daten in Excel sind wie folgt:

Datum Vorgang
01.01.2018 vorgegebener Saldo
03.01.2018 dies ist ein test bezüglich der Zeilenlänge. dies ist ein Test bezüglich der Zeilenlänge.

Wenn der Code korrekt implementiert ist, wird die Listbox den Text aus Spalte C mit Zeilenumbrüchen anzeigen, wenn Du auf den entsprechenden Eintrag klickst.


Tipps für Profis

  • Verwende die .List-Eigenschaft: Du kannst die Listbox direkt mit Arrays füllen, um die Performance zu verbessern.

  • Setze .ColumnCount richtig: Achte darauf, die Anzahl der Spalten korrekt einzustellen, um sicherzustellen, dass alle Daten angezeigt werden.

  • Teste verschiedene Formate: Nutze verschiedene Formate wie Format(Cells(i, 5), "#,###.00 €"), um die Lesbarkeit zu erhöhen.


FAQ: Häufige Fragen

1. Kann ich mehr als 10 Spalten in einer Listbox hinzufügen?
Leider ist die maximale Anzahl von Spalten in einer Listbox auf 10 begrenzt. Du kannst jedoch mehrere Listboxen verwenden oder alternative Ansätze wie eine DataGridView in VBA in Betracht ziehen.

2. Wie kann ich den Text in einer Textbox mit Zeilenumbrüchen formatieren?
Ändere die MultiLine-Eigenschaft der Textbox auf True, um mehrzeilige Texte korrekt darzustellen.

3. Funktioniert dieser Code in Excel für Mac?
Ja, die meisten VBA-Funktionen sind plattformübergreifend, aber teste den Code, um sicherzustellen, dass er in Deiner spezifischen Excel-Version funktioniert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige