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

Forumthread: ListBox Überschriften einrichten ohne RowSource

ListBox Überschriften einrichten ohne RowSource
03.09.2004 12:15:53
Henning
Hallo,
ich möchte bei einer ListBox eine Überschrift einrichten. Die ListBox wird allerdings nicht über RowSource bedient, sondern über AddItem initialisiert und gefüllt bzw. geändert. Wenn ColumnHeads auf True gesetzt ist, erscheint bloss eine leere Überschriftenzeile. Wie kann ich die Überschriftenzeile während der Laufzeit ansprechen und ggfs. verändern? Hat jemand einen Tipp?
Danke!
Henning
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ListBox Überschriften einrichten ohne RowSource
Bert
Nicht möglich!
Bert
AW: ListBox Überschriften einrichten ohne RowSource
Jürgen
Hallo Henning,
ich weiß nicht ob ich Dich richtig verstanden habe. Ist es richtig das nach der Initialisierung/Füllung Deiner ListBox diese zuerst mal leer ist (zumindest die erste, sichtbare Zeile) und Du dies aber so nicht haben willst?
Gruß
Jürgen
AW: ListBox Überschriften einrichten ohne RowSource
Andre
Hi Henning,
hab ´ne "Notlösung" anzubieten:
Mit Additem die Überschrift einfügen und dann im Code ListBox_Click diesen Wert wieder ausgrenzen ( if Listbox.value "Überschrift" then ...).
Nicht gerade die eleganteste Lösung, aber immerhin hast du dann Überschriften.
Gruß Andre
Anzeige
AW: ListBox Überschriften einrichten ohne RowSource
Udo
Stell die Überschriften in Label über der Box dar, alles andere ist Bastelei und
bringt kein vernünftiges Ergebnis.
Udo
;
Anzeige
Anzeige

Infobox / Tutorial

ListBox Überschriften einrichten ohne RowSource


Schritt-für-Schritt-Anleitung

Um Überschriften in einer ListBox zu erstellen, die nicht über RowSource gefüllt wird, kannst du den folgenden VBA-Code verwenden. Dieser Code fügt die Überschrift als erstes Element hinzu und blendet es bei der Auswahl aus:

  1. Öffne den VBA-Editor (Alt + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul).
  3. Füge den folgenden Code ein:
Sub FillListBox()
    Dim lb As MSForms.ListBox
    Set lb = UserForm1.ListBox1 ' Passe den Namen deiner ListBox an

    lb.ColumnHeads = True ' Aktiviert die Spaltenüberschriften
    lb.AddItem "Überschrift" ' Fügt die Überschrift hinzu
    lb.List(0, 0) = "Mein Header" ' Setzt den Header Text

    ' Füge weitere Daten hinzu
    lb.AddItem "Daten 1"
    lb.AddItem "Daten 2"
End Sub

Private Sub ListBox1_Click()
    If ListBox1.Value = "Überschrift" Then
        ListBox1.ListIndex = -1 ' Deaktiviert die Auswahl der Überschrift
    End If
End Sub
  1. Rufe die FillListBox-Subroutine auf, um die ListBox zu füllen.

Häufige Fehler und Lösungen

  • Leere Überschrift: Wenn du ColumnHeads auf True setzt und die Überschrift nicht korrekt anzeigst, stelle sicher, dass du die Überschrift mit AddItem hinzufügst, bevor du die ListBox mit Daten füllst.
  • Überschrift bleibt auswählbar: Stelle sicher, dass du im ListBox_Click-Ereignis den Wert „Überschrift“ abfängst und die Auswahl zurücksetzt.

Alternative Methoden

Wenn das Arbeiten mit einer ListBox nicht die gewünschte Flexibilität bietet, kannst du auch Labels verwenden, um die Überschrift darzustellen. Positioniere die Labels über der ListBox:

  1. Füge ein Label-Steuerelement hinzu.
  2. Setze die Caption-Eigenschaft des Labels auf den gewünschten Überschriftentext.
  3. Stelle sicher, dass das Label visuell ansprechend gestaltet ist, um es als Überschrift zu kennzeichnen.

Praktische Beispiele

Hier ist ein Beispiel, wie du mit der UserForm-Komponente in Excel VBA eine ListBox mit Überschrift erstellst:

Private Sub UserForm_Initialize()
    FillListBox
End Sub

Das erzeugt eine ListBox, die beim Öffnen des Formulars automatisch mit einer Überschrift und mehreren Daten gefüllt wird.


Tipps für Profis

  • Nutze die List-Eigenschaft der ListBox, um mehrere Spalten zu erstellen. Setze ColumnCount auf die gewünschte Anzahl von Spalten.
  • Experimentiere mit verschiedenen Layouts und Styles, um die ListBox an das Design deiner Anwendung anzupassen.
  • Überlege, ob du zusätzliche Steuerelemente in deiner UserForm nutzen willst, um die Benutzerinteraktion zu verbessern.

FAQ: Häufige Fragen

1. Kann ich die Überschrift dynamisch ändern? Ja, du kannst die Überschrift zur Laufzeit ändern, indem du den Wert in der ListBox über die List-Eigenschaft bearbeitest.

2. Muss ich die ListBox unbedingt über VBA füllen? Nein, du kannst auch andere Methoden verwenden, um Daten in die ListBox zu laden, aber die Verwendung von VBA ermöglicht mehr Flexibilität, insbesondere wenn die Daten dynamisch sind.

3. Was ist der Unterschied zwischen ColumnHeads und Header? ColumnHeads ist eine Eigenschaft, die angibt, ob die erste Zeile als Überschrift betrachtet wird, während ein „Header“ den spezifischen Text beschreibt, der in dieser Zeile angezeigt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige