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

Bedingte Formatierung als RGB erkennen

Forumthread: Bedingte Formatierung als RGB erkennen

Bedingte Formatierung als RGB erkennen
11.01.2019 09:31:44
Noman
Hallo zusammen,
ich habe eine ZEitskala mit verschiedenen Balken erstellt. Die Zellen werden mittels bedingter Formatierung eingefärbt wenn bspw. Datumseinträge übereinstimmen.
Jetzt möchte ich, dass alle Zellen, die farbig sind eine "1" erhalten.
Sinn: Auswertung (Über-/Unterdeckung). Eine Formel in die Zelle selbst zu schreiben wäre für mich nur der aller letzte Ausweg, da die Tabelle dadurch zu umfangreich und fehleranfälliger wäre.
Folgenden Code habe ich funktioniert aber nicht mit Bedingter Formatierung:
Dim cell As Range
For Each cell In Range("AF22:AFE53")
If cell.Interior.Color = RGB(255, 0, 0) Then
cell = 1
Else
End If
Next cell
Hat jemand eine Lösung für das PRoblem, oder alternative Vorschläge?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung als RGB erkennen
11.01.2019 09:51:16
Daniel
HI
wenn du die Farbe abfragen willst, die durch die Bedingte Formatierung aktuell erzeugt wird, musst du ein .DisplayFormat. dazwischen schieben:
cell.DisplayFormat.Interior.Color
gibt's aber meines wissens nach erst ab Excel 2010!
für Excel 2007 ist es wahrscheinlich am sinnvollsten, wenn du dir die Regel der Bedingten Formatierung anschaust und dann in der Schleife diese Regel verwendest (entsprechend in VBA umgesetzt).
Gruß Daniel
Anzeige
AW: Bedingte Formatierung als RGB erkennen
11.01.2019 10:08:03
Noman
Ok danke für den Tipp. Wie du gesagt hast funktioniert cell.DisplayFormat.Interior.Color in Excel 2007 leider nicht!
Wie wendet man die Regeln der bedingten Formatierung in VBA an?
Habe folgende Regeln
=$H24=AD$19 Wird angewendet auf =$AD$24:$XFD$1048576
=$F24=AD$19 Wird angewendet auf =$AD$24:$XFD$1048576
=UND($H24AD$19) Wird angewendet auf =$AD$24:$XFD$1048576
Anzeige
AW: Bedingte Formatierung als RGB erkennen
11.01.2019 10:16:58
Daniel
naja du musst halt die gleiche Bedinung, die die Formel abbprüft, in VBA prüfen und das ganze entsprechend programmieren.
Gruß Daniel
AW: Bedingte Formatierung als RGB erkennen
11.01.2019 10:42:09
Noman
Hab leider keine Idee...
AW: Bedingte Formatierung als RGB erkennen
11.01.2019 10:45:12
Noman
Hab leider keine Idee...
Anzeige
Genau dieses Ziel wirst du bis zu dnr Xl-Version …
11.01.2019 15:47:08
Luc:-?
…so nicht erreichen, NoMan,
denn alle vor Xl12/2007 möglichen Verfahren sind, je nach Typ der BedingtFormatierung, sehr viel aufwendiger (besonders 1. das Pixel-Auslesen und 2. die Ermittlung der aktiven Regel - ab Xl12 könnten das ja auch mehrere sein!), also ohnehin nichts für dein VBA-Level. Es käme höchstens die 3.Methode infrage, die Gandalf einst für Xl12 entwickelt hatte und in der die BedingtFormatierung selbst mitteilt, welches die aktive(n) Regel(n) ist(/sind). Mit Xl14/2010 ist das aber sehr schnell überflüssig geworden und ebenso die 1.Methode. Und auch die 2. hat nur noch dann ExistenzBerechtigung, wenn eine (Pseudo-)Regel-Fml real auswertbar erzeugt u/o dokumentiert wdn soll.
Gruß, Luc :-?
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Bedingte Formatierung in Excel richtig nutzen


Schritt-für-Schritt-Anleitung

Um die Zellen mit einer bedingten Formatierung in Excel zu erkennen und mit einem Wert zu belegen, kannst du die folgenden Schritte befolgen:

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

  2. Neues Modul erstellen: Klicke im Menü auf Einfügen und wähle Modul.

  3. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Sub SetValueBasedOnColor()
       Dim cell As Range
       For Each cell In Range("AF22:AFE53")
           ' Prüfe die Farbe, die durch die bedingte Formatierung gesetzt wurde
           If cell.DisplayFormat.Interior.Color = RGB(255, 0, 0) Then
               cell.Value = 1
           End If
       Next cell
    End Sub
  4. Anpassen des Farbcodes: Ändere den RGB(255, 0, 0)-Wert, falls du eine andere Farbe erkennen möchtest (z.B. für eine hellrote Füllung).

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: DisplayFormat nicht verfügbar: Wenn du Excel 2007 verwendest, ist DisplayFormat nicht verfügbar. In diesem Fall musst du die bedingte Formatierung manuell in die VBA-Logik einfügen, indem du die Bedingungen direkt überprüfst, z.B. If Range("H24").Value = Range("AD19").Value Then.

  • Fehler: Zellen bleiben leer: Stelle sicher, dass die Zellen tatsächlich die erwartete Füllfarbe haben und dass dein RGB-Wert korrekt ist.


Alternative Methoden

Falls du die Farbe nicht direkt über VBA erkennen kannst, gibt es alternative Ansätze:

  1. Zellen manuell überprüfen: Überprüfe die Regeln der bedingten Formatierung in Excel und übertrage die Logik in VBA.

  2. Pixel-Auslesen: Eine komplexere Methode, die jedoch je nach Excel-Version variieren kann. Diese erfordert umfangreiche Programmierkenntnisse und ist nicht empfehlenswert für Anfänger.


Praktische Beispiele

Um die bedingte Formatierung als RGB zu erkennen, könntest du die folgenden Beispiele verwenden:

  • Beispiel 1: Wenn du eine Regel hast, die Zellen rot färbt, wenn sie einen bestimmten Wert überschreiten, dann könntest du eine VBA-Funktion schreiben, die genau diese Bedingung prüft und entsprechend die Zelle aktualisiert.

  • Beispiel 2: Eine Excel-Tabelle mit Verkaufszahlen, bei der die Zellen rot gefärbt sind, wenn die Verkaufszahlen unter einem bestimmten Ziel liegen. Du könntest den oben genannten VBA-Code verwenden, um diese Zellen automatisch mit 1 zu belegen.


Tipps für Profis

  • Verwende With-Anweisungen: Um deinen Code effizienter zu gestalten, kannst du With-Blöcke verwenden, um die Zellen zu referenzieren.

    With cell
       If .DisplayFormat.Interior.Color = RGB(255, 0, 0) Then
           .Value = 1
       End If
    End With
  • Debugging: Nutze Debug.Print in deinem Code, um Werte während der Ausführung zu überprüfen.


FAQ: Häufige Fragen

1. Wie kann ich die RGB-Farbe einer Zelle manuell überprüfen? Um die RGB-Farbe manuell zu überprüfen, klicke mit der rechten Maustaste auf die Zelle, wähle Zellen formatieren, gehe zu Füllung und wähle die gewünschte Farbe. Notiere dir den RGB-Wert.

2. Funktioniert dieser Code in allen Excel-Versionen? Der Code funktioniert ab Excel 2010, da DisplayFormat erst in dieser Version eingeführt wurde. Für Excel 2007 musst du die bedingte Formatierung direkt in die VBA-Logik einfügen.

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