Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listbox mehrere Spalten

Listbox mehrere Spalten
25.11.2008 15:51:00
uli
Hallo Experten,
Habe eine Listbox (Listbox1) in einer Userform (Kl). Nun möchte ich gerne WErte aus einem Tabellenblatt in die Listbox einfügen. Diese sollen in 12 Spalten nebeneinander in die Listbox eingetragen werden.
Funktioniert mit meinem Code auch super, bis zur Listbox-Spalte 11 (KL.ListBox1.ListCount - 1, 10). Da unterbricht das Makro mit Fehlermeldung:
Laufzeitfehler 380 Eigenschaft List konnte nicht gesetzt werden. Ungültiger Eigenschaftswert.
Hier die Prozedur:

Sub liste1()
KL.ListBox1.MultiSelect = fmMultiSelectMulti
KL.ListBox1.ListStyle = fmListStyleOption
anzahl = Application.WorksheetFunction.CountA(Sheets(6).Columns(1))
For schleife = 2 To anzahl
schleife = 1
KL.ListBox1.ColumnCount = 12
KL.ListBox1.AddItem
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 0) = Sheets(6).Cells(schleife, 3).Value
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 1) = Sheets(6).Cells(schleife, 4).Value
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 2) = Sheets(6).Cells(schleife, 8).Value
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 3) = Sheets(6).Cells(schleife, 9).Value
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 4) = Sheets(6).Cells(schleife, 11).Value
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 5) = Sheets(6).Cells(schleife, 13).Value
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 6) = Sheets(6).Cells(schleife, 12).Value
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 7) = Sheets(6).Cells(schleife, 29).Value
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 8) = Sheets(6).Cells(schleife, 30).Value
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 9) = Sheets(6).Cells(schleife, 31).Value
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 10) = Sheets(6).Cells(schleife, 32).Value
KL.ListBox1.List(KL.ListBox1.ListCount - 1, 11) = Sheets(6).Cells(schleife, 33).Value
Next schleife
End Sub


Habt ihr ne Idee, was ich falsch gemacht habe?
Gruß uli

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox mehrere Spalten
25.11.2008 15:53:00
Heinz
Hi,
mehr als zehn Spalten sind nur bei gebundener Listbox möglich(RowSource).
mfg Heinz
AW: Listbox mehrere Spalten
25.11.2008 16:29:37
uli
Hallo Heinz,
danke für deine Antwort. Was ist denn eine "gebundene" Listbox. Ist es möglich die Zelleninhalte der 12 Spalten auf diese Weise in die Listbox Zeile für Zeile zu bekommen?
Oder muss ich mich von Spalten trennen?
Gruß
Uli
Anzeige
AW: Listbox mehrere Spalten
25.11.2008 16:50:00
Heinz
Hi,
gebunden bedeutet, dass sie mittels RowSource mit Daten gefüttert wird.
mfg Heinz
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Listbox mit mehreren Spalten in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Listbox in einer Userform mit mehreren Spalten in Excel zu erstellen, befolge diese Schritte:

  1. Userform erstellen: Öffne den VBA-Editor (Alt + F11) und füge eine Userform hinzu.
  2. Listbox hinzufügen: Ziehe eine Listbox (z.B. ListBox1) auf die Userform.
  3. Eigenschaften anpassen:
    • Setze ColumnCount auf 12, um 12 Spalten anzuzeigen.
    • Setze MultiSelect auf fmMultiSelectMulti, wenn du mehrere Auswahlmöglichkeiten zulassen möchtest.
  4. Daten einfügen: Verwende den folgenden VBA-Code, um Daten aus einem Tabellenblatt in die Listbox zu laden:
Sub liste1()
    KL.ListBox1.MultiSelect = fmMultiSelectMulti
    KL.ListBox1.ListStyle = fmListStyleOption
    anzahl = Application.WorksheetFunction.CountA(Sheets(6).Columns(1))

    For schleife = 2 To anzahl
        KL.ListBox1.AddItem
        For spalte = 0 To 11
            KL.ListBox1.List(KL.ListBox1.ListCount - 1, spalte) = Sheets(6).Cells(schleife, 3 + spalte * 2).Value
        Next spalte
    Next schleife
End Sub
  1. Fehlermeldung beachten: Wenn du mehr als 10 Spalten in einer nicht-gebundenen Listbox einfügen möchtest, kann dies zu einem Laufzeitfehler führen. Achte darauf, die Listbox als gebundene Listbox über RowSource zu nutzen, wenn du mehr als 10 Spalten benötigst.

Häufige Fehler und Lösungen

  • Laufzeitfehler 380: Dieser Fehler tritt auf, wenn du versuchst, mehr als 10 Spalten in einer nicht-gebundenen Listbox zu setzen. Um dies zu beheben, verwende RowSource, um die Listbox mit Daten aus einem Bereich zu füllen, anstatt die Werte einzeln hinzuzufügen.

  • Listbox zeigt keine Daten: Überprüfe, ob die RowSource korrekt angegeben ist und dass der Bereich die richtige Anzahl an Spalten und Zeilen hat.


Alternative Methoden

Wenn du eine Listbox mit mehr als 10 Spalten benötigst, kannst du die Methode des Datenbindens verwenden. Hier ist ein Beispiel:

Sub liste2()
    KL.ListBox1.RowSource = "Sheet6!C2:N" & Application.WorksheetFunction.CountA(Sheets(6).Columns(1))
End Sub

Mit dieser Methode wird der Bereich C2:N als Datenquelle für die Listbox verwendet, was dir ermöglicht, alle 12 Spalten anzuzeigen, ohne die Listbox manuell zu befüllen.


Praktische Beispiele

Hier sind einige Beispiele, wie du die Listbox in verschiedenen Szenarien nutzen kannst:

  1. Daten aus einer Datenbank: Wenn deine Daten in einer Access-Datenbank gespeichert sind, kannst du ADO verwenden, um die Daten in die Listbox zu laden.
  2. Dynamische Datenquelle: Setze die RowSource auf einen dynamischen Bereich, der sich je nach Eingabe ändert.
  3. Filterung: Füge eine Filterfunktion hinzu, um nur bestimmte Daten in der Listbox anzuzeigen.

Tipps für Profis

  • Nutze With...End With-Blöcke, um den Code leserlicher zu gestalten:
With KL.ListBox1
    .MultiSelect = fmMultiSelectMulti
    .ListStyle = fmListStyleOption
    .ColumnCount = 12
End With
  • Vermeide harte Kodierung von Spaltennummern, indem du Konstanten oder Variablen verwendest, um die Wartung deines Codes zu erleichtern.

FAQ: Häufige Fragen

1. Was ist eine gebundene Listbox?
Eine gebundene Listbox ist mit einem Datenbereich verknüpft, der über die RowSource-Eigenschaft definiert wird. So kannst du eine größere Anzahl an Spalten anzeigen.

2. Wie kann ich mehr als 12 Spalten anzeigen?
Wenn du mehr als 12 Spalten benötigst, solltest du die Daten in einer Excel-Tabelle organisieren und die Listbox mit RowSource füttern. Alternativ kannst du mehrere Listboxen verwenden, um die Daten anzuzeigen.

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