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

Mehrspaltige Listbox mit Daten füllen

Forumthread: Mehrspaltige Listbox mit Daten füllen

Mehrspaltige Listbox mit Daten füllen
25.08.2003 16:44:18
Peter
Hallo alle miteinander!
Ich kämpfe zu Zeit mit einer Listbox und habe schon fast alles ausprobiert, was ich hier und in Büchern gefunden habe, nix klappt!
Ich möchte in eine mehrspaltige Listbox (sagen wir 4 Spalten) die Inhalte aus 4 Comboboxen einlesen: Ich wähle in den Comboboxen meine Einträge, klicke auf einen Übertragen-Knopf und der Eintrag mit allen vier Werten soll sich in der Listbox am Ende der Liste wiederfinden. Am Einfachsten ginge sowas mit ADDITEM, aber mehrspaltige Einträge habe ich damit noch nicht einlesen können (auch die Übergabe als String mit Semikolon-Trennung zwischen den Elementen haut nicht hin). Zugriff mit COLUMN oder LIST(zeile,spalte)(ist da schreibender Zugriff in die Listbox überhaupt möglich?) haut nicht hin.
Es muß da doch eine ganz einfache Lösung geben!
Gruß
Peter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Mehrspaltige Listbox mit Daten füllen
25.08.2003 17:14:11
Ingo
In diesem Beispiel sind die Listbox und die Combobox und der Übertragenbutton alle auf einem Blatt.Dürfte aber kein Problem sein, mit verschiedenen oder Userforms.(Die Pfadnamen der Steuerelemente müssten nur angepasst werden.
Dies ist der Code des Übertragen-Buttons.:

Private Sub CommandButton1_Click()
Me.ListBox1.AddItem (Me.ComboBox1.Value)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Me.ComboBox2.Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Me.ComboBox3.Value
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Me.ComboBox4.Value
End Sub


Anzeige
AW: Mehrspaltige Listbox mit Daten füllen
25.08.2003 17:34:45
Peter
Hallo Ingo!
Danke für die schnelle Antwort! Genau das hatte ich auch schon ausprobiert,aber vergessen den Index bei LIST für die Zeile um 1 zu verringern. Ich habe also immer versucht mit LIST ein nicht existierende Zeile anzusprechen. Ich kleines Dummerchen! Manchmal steht man echt wie der Ochs vorm Berg.
Aber wo wir gerade dabei sind: mit listbox.columnheads = true kann ich die Spalten-Überschriften einschalten. Gibt es inzwischen ein Möglichkeit, da per VBA auch was einzutragen?
Gruß
Peter

Anzeige
;
Anzeige

Infobox / Tutorial

Mehrspaltige Listbox mit Daten füllen in Excel


Schritt-für-Schritt-Anleitung

Um eine mehrspaltige Listbox in Excel mit Daten aus Comboboxen zu füllen, folge diesen Schritten:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

  2. Füge die Steuerelemente hinzu:

    • Füge eine Listbox (ListBox1) und vier Comboboxen (ComboBox1 bis ComboBox4) hinzu.
    • Füge einen Button (CommandButton1) hinzu, um die Daten zu übertragen.
  3. Öffne den VBA-Editor (Alt + F11).

  4. Füge den folgenden Code in das Codefenster des Arbeitsblatts ein:

    Private Sub CommandButton1_Click()
       Me.ListBox1.AddItem (Me.ComboBox1.Value)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Me.ComboBox2.Value
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Me.ComboBox3.Value
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Me.ComboBox4.Value
    End Sub
  5. Schließe den VBA-Editor und kehre zum Arbeitsblatt zurück.

  6. Teste die Funktion: Wähle Werte in den Comboboxen aus und klicke auf den Button, um die Werte in der Listbox anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: Listbox wird nicht aktualisiert.

    • Lösung: Stelle sicher, dass der Index bei List um 1 verringert wird. Der Code muss die richtige Zeile ansprechen.
  • Fehler: Daten erscheinen nicht in der Listbox.

    • Lösung: Überprüfe, ob der Button korrekt mit dem Code verknüpft ist.
  • Fehler: Spaltenüberschriften werden nicht angezeigt.

    • Lösung: Setze ListBox1.ColumnHeads = True im Code. Um Überschriften per VBA zu setzen, musst Du die Eigenschaften in der UserForm anpassen.

Alternative Methoden

Eine alternative Methode besteht darin, Daten in eine mehrspaltige Listbox mit einem Array zu füllen. Dies kann nützlich sein, wenn Du viele Daten auf einmal laden möchtest:

Dim myArray(1 To 10, 1 To 4) As Variant
' Füge Daten in myArray ein
Me.ListBox1.List = myArray

Diese Methode kann effektiver sein, wenn Du viele Daten verwalten musst, da sie die Performance verbessert.


Praktische Beispiele

Hier ein einfaches Beispiel, um die Funktionsweise zu verdeutlichen:

  1. Comboboxen: Setze die Werte der Comboboxen auf:

    • ComboBox1: "Apfel"
    • ComboBox2: "Rot"
    • ComboBox3: "Süß"
    • ComboBox4: "Deutschland"
  2. Klicke den Button: Nach dem Klicken sollte die Listbox den Eintrag "Apfel", "Rot", "Süß", "Deutschland" anzeigen.


Tipps für Profis

  • Dynamische Daten: Wenn Du Daten aus einer Datenbank oder einem anderen Arbeitsblatt einfügen möchtest, kannst Du eine Schleife verwenden, um diese automatisch zu laden.
  • Ereignisgesteuerte Programmierung: Nutze Ereignisse wie UserForm_Initialize, um die Listbox beim Öffnen der UserForm mit Werten zu füllen.
  • Datenvalidierung: Füge Validierungslogik hinzu, um sicherzustellen, dass die Werte in den Comboboxen korrekt sind, bevor sie in die Listbox übertragen werden.

FAQ: Häufige Fragen

1. Wie kann ich die Anzahl der Spalten in einer Listbox ändern?
Du kannst die Anzahl der Spalten über die Eigenschaft ColumnCount in den Eigenschaften der Listbox festlegen.

2. Kann ich Daten aus einer Excel-Tabelle in die Listbox importieren?
Ja, Du kannst Daten aus einem Arbeitsblatt direkt in die Listbox laden, indem Du eine Schleife verwendest, um die Daten zu durchlaufen und sie mit AddItem hinzuzufügen.

3. Wie kann ich die Listbox leeren?
Um die Listbox zu leeren, kannst Du den folgenden Code verwenden:

Me.ListBox1.Clear

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige