ich habe eine Listbox in einem Userform mit acht Spalten und aktiver Überschriftszeile.
Wer kann mir sagen, wie ich die Überschriftfelder (in VBA) mit Texten füllen kann ?
Gruß
Ulrich
Um die Überschriften in einer mehrspaltigen Listbox in einem Userform mit VBA zu füllen, gehe wie folgt vor:
ColumnHeads
der Listbox auf True
gesetzt ist.Fülle die Überschrift: Verwende den folgenden VBA-Code, um die Überschriften zu setzen:
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 3 ' Anzahl der Spalten
.AddItem ' Fügt eine leere Zeile hinzu
.List(0, 0) = "Spalte 1"
.List(0, 1) = "Spalte 2"
.List(0, 2) = "Spalte 3"
End With
End Sub
In diesem Beispiel wird die erste Zeile als Überschrift verwendet, die Du mit den gewünschten Texten füllen kannst.
Fehler: Überschrift wird nicht angezeigt
ColumnHeads
-Eigenschaft auf True
gesetzt ist. Wenn Du die Überschrift zu einer bereits existierenden Liste hinzufügen möchtest, verwende .AddItem
korrekt.Fehler: ListBox bleibt leer
ColumnCount
-Eigenschaft der Listbox korrekt gesetzt ist und ob Du mit .AddItem
eine leere Zeile hinzufügst, bevor Du die Werte zuweist.Eine alternative Methode, um die Überschriften in einer Listbox zu füllen, besteht darin, die Listbox zu initialisieren, während Daten aus einer Tabelle geladen werden. Hier ein Beispiel:
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Tabelle1")
With ListBox1
.ColumnCount = 3
.ColumnHeads = True
.AddItem ' Fügt eine leere Zeile hinzu für die Überschrift
.List(0, 0) = ws.Cells(1, 1).Value ' Überschrift aus Zelle A1
.List(0, 1) = ws.Cells(1, 2).Value ' Überschrift aus Zelle B1
.List(0, 2) = ws.Cells(1, 3).Value ' Überschrift aus Zelle C1
End With
End Sub
Hierbei werden die Überschriften direkt aus einer Excel-Tabelle übernommen.
Nehmen wir an, Du möchtest eine Listbox mit drei Spalten erstellen, die die Überschriften "Name", "Alter" und "Beruf" trägt. Der Code könnte folgendermaßen aussehen:
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 3
.ColumnHeads = True
.AddItem
.List(0, 0) = "Name"
.List(0, 1) = "Alter"
.List(0, 2) = "Beruf"
.AddItem
.List(1, 0) = "Max Mustermann"
.List(1, 1) = "30"
.List(1, 2) = "Ingenieur"
End With
End Sub
Hierbei wird zuerst die Überschrift hinzugefügt, gefolgt von einer Datenzeile.
ColumnCount
-Eigenschaft dynamisch setzen, je nachdem, wie viele Spalten Du benötigst.1. Kann ich die Überschrift der Listbox nachträglich ändern?
Ja, Du kannst die Werte der Überschrift mit .List(0, Spaltenindex)
ändern, nachdem die Listbox initialisiert wurde.
2. Wie viele Spalten kann eine Listbox maximal haben?
Die maximale Anzahl der Spalten in einer Listbox hängt nicht von Excel ab, sondern von der Bildschirmgröße und der Lesbarkeit. Praktisch sind meist 10 oder weniger Spalten sinnvoll.
3. Was passiert, wenn ich die ColumnHeads
-Eigenschaft auf False
setze?
Wenn die ColumnHeads
-Eigenschaft auf False
gesetzt ist, wird die erste Zeile der Listbox wie jede andere Zeile behandelt und nicht als Überschrift angezeigt.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen