Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listbox, mehrspaltig, List oder AddItem

Forumthread: Listbox, mehrspaltig, List oder AddItem

Listbox, mehrspaltig, List oder AddItem
22.01.2003 11:15:12
Tom
Hallo allerseits,
ich fülle die Listbox1 mit 2 Spalten: 1. Spalte eine Zahl, 2.Spalte ein Text. MutliSelect steht auf fmMultiSelectMulti. Durch eine Schaltfläche sollen nun die selektierten Werte in die Listbox2 übernommen werden. Der Code:

Private Sub CommandButton1_Click()
ListBox2.Clear

For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox2.AddItem ListBox1.List(i)
End If
Next i

End Sub

Auch Listbox2 steht auf 2spaltig. Aber es wird in Listbox2 immer nur der Wert aus der 1. Spalte (also die Zahl) übernommen, Spalte 2 bleibt leer.

Das Beispiel entspricht dem aus der integrierten Hilfe von Excel, allerdings finde ich nichts, wie ich beide Spaltenwerte in Listbox2 übernehmen kann.
Wer kennt eine Lösung?
Besten Dank im voraus!

Tom

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Listbox, mehrspaltig, List oder AddItem
22.01.2003 12:58:06
Steffan
Hallo Tom,

mit AddItem kannst Du nur die erste Spalte definieren.
Ergänze Deinen Code folgendermaßen:


For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
    ListBox2.AddItem ListBox1.List(i, 0)
    ListBox2.List(ListBox2.ListCount - 1, 1) = ListBox1.List(i, 1)
End If
Next i 

Steffan.

Anzeige
Re: Listbox, mehrspaltig, List oder AddItem
23.01.2003 09:57:02
Tom
Hallo Steffan,
vielen Dank, es klappt super. Hätte ich ja auch selber drauf kommen können. Aber manchmal steht man ja wie der Ochs vorm Berg!
lieber Gruß
Tom
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Listbox in Excel VBA: Mehrspaltige Nutzung mit AddItem


Schritt-für-Schritt-Anleitung

Um eine Listbox in Excel VBA mehrspaltig zu verwenden, und um sicherzustellen, dass die Werte beider Spalten in eine andere Listbox übernommen werden, kannst Du den folgenden Code verwenden:

  1. Erstelle zwei Listboxen in Deinem UserForm, z. B. ListBox1 und ListBox2.
  2. Stelle sicher, dass beide Listboxen auf mehrspaltig gesetzt sind (z. B. ColumnCount auf 2).
  3. Füge einen CommandButton hinzu, um die Aktion auszulösen.
  4. Verwende den folgenden Code im Click-Event des CommandButtons:
Private Sub CommandButton1_Click()
    ListBox2.Clear

    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
            ListBox2.AddItem ListBox1.List(i, 0)
            ListBox2.List(ListBox2.ListCount - 1, 1) = ListBox1.List(i, 1)
        End If
    Next i
End Sub

In diesem Code wird ListBox2 zuerst geleert und dann werden die ausgewählten Werte von ListBox1 übernommen. Hierbei wird die Zahl aus der ersten Spalte und der Text aus der zweiten Spalte korrekt hinzugefügt.


Häufige Fehler und Lösungen

  • Problem: In ListBox2 wird nur der Wert aus der ersten Spalte angezeigt.

    • Lösung: Stelle sicher, dass Du sowohl die erste als auch die zweite Spalte im Code angibst, wie im obigen Beispiel gezeigt.
  • Problem: ListBox2 bleibt leer, obwohl Werte in ListBox1 ausgewählt sind.

    • Lösung: Überprüfe, ob MultiSelect für ListBox1 korrekt auf fmMultiSelectMulti eingestellt ist.

Alternative Methoden

Anstelle von AddItem kannst Du auch die List-Eigenschaft verwenden, um eine ganze Liste von Werten auf einmal zu setzen. Hier ist ein Beispiel:

Dim selectedItems As Variant
Dim i As Long

selectedItems = ListBox1.List

For i = LBound(selectedItems) To UBound(selectedItems)
    If ListBox1.Selected(i) Then
        ListBox2.AddItem selectedItems(i, 0)
        ListBox2.List(ListBox2.ListCount - 1, 1) = selectedItems(i, 1)
    End If
Next i

Diese Methode kann nützlich sein, wenn Du eine große Anzahl von Daten auf einmal bearbeiten möchtest.


Praktische Beispiele

Angenommen, Du hast ListBox1 mit den folgenden Werten:

Index Zahl Text
0 1 Apfel
1 2 Banane
2 3 Kirsche

Wenn Du die Zahl und den Text in ListBox2 übernehmen möchtest, wird nach der Ausführung des Codes ListBox2 so aussehen:

Index Zahl Text
0 1 Apfel
1 2 Banane

Tipps für Profis

  • Verwende die .List-Eigenschaft, um effizienter mit mehreren Werten zu arbeiten, anstatt AddItem mehrfach aufzurufen.
  • Achte darauf, dass die ColumnWidths-Eigenschaft der Listboxen richtig eingestellt ist, um sicherzustellen, dass alle Spalten sichtbar sind.
  • Experimentiere mit der ListIndex-Eigenschaft, um den aktuell ausgewählten Index der Listbox zu ermitteln und gezielte Aktionen durchzuführen.

FAQ: Häufige Fragen

1. Kann ich mehr als zwei Spalten in einer Listbox verwenden? Ja, Du kannst mehr als zwei Spalten verwenden, indem Du die ColumnCount-Eigenschaft entsprechend erhöhst und den Code anpasst.

2. Wie kann ich die Listbox mit Werten aus einer Excel-Tabelle füllen? Du kannst die Werte aus einer Excel-Tabelle in die Listbox laden, indem Du eine Schleife über die Zellen der Tabelle schreibst und die Werte mit AddItem hinzufügst.

3. Was mache ich, wenn der Code nicht funktioniert? Überprüfe den Code auf Syntaxfehler und stelle sicher, dass die Listboxen korrekt benannt und konfiguriert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige