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

Forumthread: Listbox - jede zweite Zeile färben

Listbox - jede zweite Zeile färben
Jockel
Hallo,
ich lade mir per VBA Daten in eine Listbox. Der besseren Übersicht halber würde ich gerne jede zweite Zeile in einem anderen Farbton darstellen.
Geht das in einer Listbox ? Wenn ja , wie ?
Danke mal
Jockel
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Listbox - jede zweite Zeile färben
23.03.2011 15:09:21
Christian
Hallo Jockel,
das geht bei eine Listbox nicht.
Alternativ:
Bei einem Listview kannst du ein Bild (z.Bsp. bmp-Datei) hinterlegen. Das Listview gehört jedoch nicht zu den Standard Formen von Excel VBA
Gruß
Christian
OK, trotzdem danke :-) owT
23.03.2011 15:26:54
Jockel
Listbox geht nicht, vielleicht mit Listview
23.03.2011 15:37:09
Tino
Hallo,
in einer Listbox geht dies nicht, Du könntest aber ein Listview verwenden.
Hier mal ein Beispiel, Du kannst aus der Combo die Werte aussuchen die gefärbt werden sollen oder
mit der Checkbox jede zweite Zeile einfärben.
https://www.herber.de/bbs/user/74079.xls
Gruß Tino
Anzeige
ListView, Zeilenhintergründe färben
23.03.2011 18:28:02
Reinhard
Hallo Tino,
du färbst ja die Schrift, nicht den zeilenhintergrund.
Irgendwie muß das aber auch gehen *annehm*
Grob eben zusammengebasteltsieht das dann so aus:
Userbild
Wie evtl. ersichtlich habe ich da nur gefärbte Zeilen aus Excel als bmp abgespeichert und als Picture in die ListView gestellt.
In VB geht das professioneller, die benutzen da eine "PictureBox", die es nun mal in meinem Vba nicht gibt.
Aber "Image" in Vba hat ja ähnlices zu bieten wie eine "PictureBox", vielleicht ist da was zu machen. Man will ja nur automatisch die Zeilenhöhen und ggfs. Spaltenbreiten bestimmen usw.
Um dann daraus ein passendes Bild zu erstellen was den Anschein erweckt als wären da in der ListView Zeilen gefärbt.
Hier ist der VB-Code dazu. Ich bekam es nicht hin.
http://www.aboutvb.de/khw/artikel/khwlvwaltlinesbackground.htm
Gruß
Reinhard
Anzeige
AW: ListView, Zeilenhintergründe färben
23.03.2011 19:16:17
Tino
Hallo,
du brauchst nur ein Bild mit zwei Farben in der richtigen Größe basteln und dies in das Listview laden.
https://www.herber.de/bbs/user/74092.xls
Userbild
Gruß Tino
Anzeige
AW: ListView, Zeilenhintergründe färben
23.03.2011 20:07:27
Jockel
Hallo Tino,
vielen Dank, das ist ein sehr gutes Beispiel, das hilft mir auf jeden Fall weiter.
Danke
Gruß
Jockel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Jede zweite Zeile in einer Listbox oder Listview färben


Schritt-für-Schritt-Anleitung

Um jede zweite Zeile in einer Listbox zu färben, musst Du wissen, dass dies direkt nicht möglich ist. Stattdessen kannst Du die Listview-Steuerung verwenden. Hier ist eine einfache Anleitung, wie Du dies umsetzen kannst:

  1. Listview hinzufügen: Füge ein Listview-Steuerelement zu Deinem Excel-Formular hinzu.

  2. Daten laden: Lade Deine Daten in das Listview. Du kannst dies über VBA tun. Ein Beispielcode könnte so aussehen:

    Dim i As Integer
    For i = 1 To 10
        ListView1.ListItems.Add , , "Item " & i
    Next i
  3. Zeilenfärbung: Um jede zweite Zeile zu färben, kannst Du ein Bild erstellen, das die gewünschten Farben enthält. Lade das Bild dann in das Listview:

    ListView1.ListItems(i).Image = "Pfad\zum\Bild.bmp"
  4. VBA-Code anpassen: Stelle sicher, dass Du den VBA-Code an Deine Bedürfnisse anpasst. Die genauen Schritte können je nach Excel-Version variieren.


Häufige Fehler und Lösungen

  • Fehler: Die Listbox zeigt keine Farben an.

    • Lösung: Die Listbox unterstützt keine farbigen Zeilen. Verwende stattdessen ein Listview.
  • Fehler: Das Bild wird nicht geladen.

    • Lösung: Überprüfe den Pfad zum Bild und stelle sicher, dass das Bild im richtigen Format vorliegt (z.B. BMP).

Alternative Methoden

Wenn Du keine Listview verwenden möchtest, kannst Du auch die Formatierung von Zellen in Excel nutzen, um die Sichtbarkeit zu erhöhen. Hier ist eine Möglichkeit:

  1. Daten in eine Tabelle einfügen: Erstelle eine Excel-Tabelle und fülle sie mit den Daten.

  2. Bedingte Formatierung nutzen: Gehe zu "Start" > "Bedingte Formatierung" > "Neue Regel". Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“ und gib folgende Formel ein:

    =REST(ZEILE();2)=0
  3. Farbe auswählen: Wähle die gewünschte Füllfarbe für jede zweite Zeile.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um jede zweite Zeile in einer Listview zu färben:

Dim i As Integer
Dim imgIndex As Integer

For i = 1 To 10
    ListView1.ListItems.Add , , "Item " & i
    If i Mod 2 = 0 Then
        imgIndex = 1 ' Zweite Farbe
    Else
        imgIndex = 0 ' Erste Farbe
    End If
    ListView1.ListItems(i).Image = imgIndex
Next i

Hierbei musst Du sicherstellen, dass Du die Bilder im Vorfeld in Deinem Listview-ImageList hinzugefügt hast.


Tipps für Profis

  • Verwendung von Bildern: Nutze Bilder mit transparenten Hintergründen, um einen nahtlosen Übergang zwischen den gefärbten und nicht gefärbten Zeilen zu schaffen.
  • Optimierung des Codes: Halte Deinen Code schlank und übersichtlich, um die Leistung zu steigern.
  • Verwendung von UserForms: Erstelle UserForms, um die Benutzeroberfläche ansprechender zu gestalten.

FAQ: Häufige Fragen

1. Kann ich mit VBA jede zweite Zeile in einer Listbox färben? Nein, das ist nicht möglich. Du solltest stattdessen ein Listview verwenden.

2. Wie kann ich die Schriftfarbe in einer Listview ändern? Du kannst die Schriftfarbe ebenfalls über das ImageList-Steuerelement anpassen, indem Du unterschiedliche Bilder für die verschiedenen Zeilen verwendest.

3. Ist die Verwendung von Listview in allen Excel-Versionen möglich? Ja, aber die Implementierung kann je nach Excel-Version variieren. Stelle sicher, dass Du die entsprechenden Referenzen für die Listview hinzufügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige