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

Forumthread: VBA: colorindex der bedingten Formatierung

VBA: colorindex der bedingten Formatierung
26.09.2018 14:02:41
Helmut
Der activesheet.font.colorindex ist auf 1 eingestellt
Durch eine bedingte Formatierung wurde der Colorindex auf 3 (rot) gestellt.
activesheet.font.colorindex liefert nach wie vor den ursprünglichen Wert (1).
wie kann ich in diesem Fall die sichtbare Farbe rot=3 abfragen, wenn eine bedingte Formatierung gerade wahr ist?
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: colorindex der bedingten Formatierung
26.09.2018 14:08:49
Daniel
Hi
wenn die Bedingte Formatierung im Spiel ist, musst du die Formatierung der Zelle immer mit einem zwischengeschobenen DisplayFormat ermitteln:
Cells(...).DisplayFormat.Font.Colorindex
musst aber mal prüfen, obs bei dir vorhanden ist, ich bin mir nicht sicher ob die Funktion mit 2010 oder 2013 eingeführt wurde.
man sollte den Colorindex auch immer nur von Einzelzellen abfragen, sobald der Zellbereich mehr als eine Zelle umfasst, können ja mehrere Werte das Ergebnis sein.
Gruß Daniel
Anzeige
AW: VBA: colorindex der bedingten Formatierung
26.09.2018 14:15:11
Helmut
Hallo Daniel, Danke das funktioniert
.ColorIndex ist übrigens ab Xl12/2007 nicht ...
26.09.2018 14:16:24
Luc:-?
…mehr eindeutig und .DisplayFormat gibt's (erst) ab Xl14/2010, wird aber bei UDFs im ZellFml-Einsatz blockiert (nur mit Evaluierung anwendbar).
Luc :-?
AW: VBA: colorindex der bedingten Formatierung
26.09.2018 14:11:57
Nepumuk
Hallo Helmut,
ein Beispiel:
Public Sub Test()
    MsgBox Range("A1").DisplayFormat.Interior.ColorIndex
End Sub

Gruß
Nepumuk
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA: Colorindex der bedingten Formatierung


Schritt-für-Schritt-Anleitung

Um den ColorIndex einer Zelle, die durch bedingte Formatierung formatiert ist, auszulesen, kannst du folgendes Verfahren in VBA verwenden:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (Dein Dokument)" und wähle "Einfügen" > "Modul".

  3. Gib den folgenden Code ein:

    Sub AuslesenColorIndex()
       Dim colorIndexWert As Long
       colorIndexWert = Cells(1, 1).DisplayFormat.Font.ColorIndex
       MsgBox "Der ColorIndex ist: " & colorIndexWert
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, um den ColorIndex der Zelle A1 auszulesen.

Mit .DisplayFormat.Font.ColorIndex kannst du den aktuellen ColorIndex abfragen, auch wenn eine bedingte Formatierung aktiv ist.


Häufige Fehler und Lösungen

  • Fehler: Der ColorIndex wird nicht korrekt angezeigt.

    • Lösung: Stelle sicher, dass du .DisplayFormat verwendest, um die aktuelle Formatierung auszulesen. Der direkte Zugriff auf .Font.ColorIndex gibt möglicherweise den ursprünglichen Wert zurück.
  • Fehler: Die Funktion ist nicht verfügbar.

    • Lösung: DisplayFormat ist ab Excel 2010 verfügbar. Stelle sicher, dass du mindestens diese Version verwendest.

Alternative Methoden

Falls du Zugriff auf die Zelle und ihre Formatierung in der Arbeitsmappe benötigst, kannst du alternative Ansätze verwenden:

  1. Zugriff über eine Schleife: Wenn du mehrere Zellen überprüfen möchtest, kannst du eine Schleife verwenden.

    Sub AlleColorIndex()
       Dim cell As Range
       For Each cell In Range("A1:A10")
           MsgBox "ColorIndex von " & cell.Address & ": " & cell.DisplayFormat.Font.ColorIndex
       Next cell
    End Sub
  2. Verwendung von .Interior.ColorIndex: Um den Hintergrundfarbe-Index auszulesen, verwende .DisplayFormat.Interior.ColorIndex.


Praktische Beispiele

Hier sind einige nützliche Beispiele, wie du den ColorIndex in verschiedenen Szenarien verwenden kannst:

  1. Hintergrundfarbe einer Zelle abfragen:

    Sub HintergrundColorIndex()
       Dim bgColorIndex As Long
       bgColorIndex = Range("B1").DisplayFormat.Interior.ColorIndex
       MsgBox "Der Hintergrund ColorIndex ist: " & bgColorIndex
    End Sub
  2. Farbe von mehreren Zellen auslesen:

    Sub MehrereZellenColorIndex()
       Dim cell As Range
       For Each cell In Range("C1:C5")
           Debug.Print "ColorIndex von " & cell.Address & ": " & cell.DisplayFormat.Interior.ColorIndex
       Next cell
    End Sub

Tipps für Profis

  • Nutze .Interior.ColorIndex und .Font.ColorIndex in Kombination, um vollständige Informationen über die Formatierungen einer Zelle zu erhalten.
  • Überprüfe die Version von Excel, um sicherzustellen, dass du die neuesten Funktionen wie DisplayFormat verwenden kannst.
  • Halte deine Makros einfach und strukturiert, um die Lesbarkeit und Wartbarkeit zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich den ColorIndex einer Zelle ohne VBA auslesen? Du kannst den ColorIndex nur über VBA abfragen, da Excel keine integrierte Funktion dafür bietet.

2. Was ist der Unterschied zwischen .Interior.ColorIndex und .Font.ColorIndex? .Interior.ColorIndex bezieht sich auf die Hintergrundfarbe der Zelle, während .Font.ColorIndex die Schriftfarbe angibt.

3. Wie kann ich den ColorIndex für mehrere Zellen gleichzeitig abfragen? Verwende eine Schleife, um durch einen Zellbereich zu iterieren und den ColorIndex jeder Zelle abzufragen.

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