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

Forumthread: Bedingte Formatierung über VBA (Bedingung Farbe)

Bedingte Formatierung über VBA (Bedingung Farbe)
23.02.2019 21:00:26
Phillip
Hallo Ihr lieben Excel Profis :)
bisher habe ich hier eher passiv rumgestöbert, nun meine erste Frage da ich keine Lösung finde:
Ein Export soll automatisch aufbereitet und gedruckt werden.
Bisher bin ich so weit das die Informationen korrekt in die unterschiedliche Tabellenblätter kopiert werden und Zellen nach der Bedingung des Inhalts der Zelle umformatiert werden.
Ich möchte jedoch nicht nur Zellen formatieren mit der Bedingung welchen Textinhalt sie haben sondern auch mit der Bedingung welche Farbe die Zelle bzw. der Hintergrund hat.
Das ist mein Code für die Bedingung mit dem Text, wie würde das mit der Bedingung einer Farbe aussehen?:
'Tabellenblatt 1 aktivieren und Beispieltext färben - dunkelrot
ThisWorkbook.Worksheets("1").Activate
Range("A1:AZ100").Select
Range("F4").Activate
Selection.FormatConditions.Add Type:=xlTextString, String:="Beispieltext", _
TextOperator:=xlContains
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 3342489
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Vielen Dank im Voraus :-)
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung über VBA (Bedingung Farbe)
23.02.2019 22:27:12
onur
Du willst die Zelle z.B. rot färben, wenn die Zelle z.B. grün gefärbt ist ?
Dann färbe sie doch direkt rot.
Es gibt keine bed. Formatierung für eine Formatierung - was für einen Sinn sollte es haben?
Als Bedingung für die BF kannst du alles nehmen, was sich in eine Formel packen lässt, aber für die Zellfarbe gibt es keine Formel, man müsste extra eine UDF dafür schreiben.
Anzeige
AW: Bedingte Formatierung über VBA (Bedingung Farbe)
24.02.2019 09:22:29
Phillip
Hallo Onur,
danke für die schnelle Antwort.
Das die Sinnfrage gestellt wird habe ich mir schon gedacht.
Das ursprüngliche Problem ist das der Export farblich aus der Datenbank kommt. Die Farben würde ich auch gerne übernehmen jedoch verändern sich die Farben sobald man die Daten kopiert, ausschneidet oder ähnliches. Habe es auch schon mit mehreren VB Lösungen probiert, funktioniert alles nicht (auch Format übertragen verändert die Farben). Deshalb war meine Frage ob ich die durchs sortieren & kopieren falsch entstandene Formatierung nutzen kann um es automatisiert wieder umzuformatieren.
Bei dir lese ich jedoch raus das es nicht so einfach möglich ist, habe ich mir schon gedacht.
Danke trotzdem :-)
Ich schaue mal weiter nach einer anderen Lösung...
Anzeige
Diese UDF gibt's schon in mehreren Varianten ...
24.02.2019 19:52:24
Luc:-?
…im Archiv, Onur & Philipp,
sowohl für Direkt- als auch BedingtFärbung von Zellen. Hier dürfte es sich aber um DirektFärbung handeln, so dass nicht unbedingt mit der objektbildenden Range-Eigenschaft .DisplayFormat (ab Xl14/2010) und ihren Range-analogen Eigenschaften gearbeitet wdn müsste. Bei einer echten wirksamen BedingtFärbung wäre das auch nicht möglich, denn bei einer BedingtFärbung kann die Farbe nicht durch eine andere bei gleichartiger Bedingung ersetzt wdn.
Allerdings wäre hier wohl eine SubProzedur, die eine DirektFärbungsFarbe durch eine erwünschte andere ersetzt, angebrachter. Als bedingte Farbe sollte sie nur dann gesetzt wdn, wenn sich nach­trägliche Änderungen an den Daten ergeben können. Dann müsste eine Bedingung aber genau darauf abstellen und nicht auf die primäre ZellFarbe.
Gruß, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
;

Forumthreads zu verwandten Themen

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

Bedingte Formatierung in Excel über VBA: Zellen nach Farbe formatieren


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle Einfügen > Modul.

  3. Code eingeben: Füge den folgenden Code in das Modul ein, um eine Zelle basierend auf ihrer Hintergrundfarbe zu formatieren:

    Sub FormatByColor()
       Dim ws As Worksheet
       Dim rng As Range
       Dim cell As Range
    
       Set ws = ThisWorkbook.Worksheets("1")
       Set rng = ws.Range("A1:AZ100")
    
       For Each cell In rng
           If cell.Interior.Color = RGB(0, 255, 0) Then ' Überprüft ob die Zelle grün ist
               cell.Interior.Color = RGB(255, 0, 0) ' Färbt die Zelle rot
           End If
       Next cell
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: Das Makro läuft nicht.

    • Lösung: Stelle sicher, dass die Entwicklertools aktiviert sind und das Makro in der richtigen Datei gespeichert wurde.
  • Fehler: Die Zellen färben sich nicht wie erwartet.

    • Lösung: Überprüfe, ob die Farbwerte in der If-Bedingung korrekt sind. RGB-Werte müssen genau den Zellenfarben entsprechen.

Alternative Methoden

Eine andere Möglichkeit, die Excel bedingung farbe zu nutzen, ist die Verwendung von benutzerdefinierten Funktionen (UDFs). Diese können in Kombination mit bedingten Formatierungen verwendet werden, um die Zellenfarbe zu ändern. Allerdings ist dies etwas komplexer und erfordert mehr Programmierkenntnisse.

Function CheckColor(rng As Range) As Boolean
    CheckColor = (rng.Interior.Color = RGB(0, 255, 0))
End Function

Mit dieser Funktion kannst du die Zellenfarbe in einer bedingten Formatierung überprüfen.


Praktische Beispiele

  • Beispiel 1: Färbe alle Zellen rot, die ursprünglich grün waren, im Bereich A1:AZ100.

  • Beispiel 2: Nutze eine UDF, um Zellen basierend auf einem benutzerdefinierten Kriterium zu formatieren. Zum Beispiel könntest du eine Zelle farblich markieren, wenn der Inhalt einen bestimmten Text enthält.


Tipps für Profis

  • Überlege, wie du die Excel form farbe bedingte formatierung optimal einsetzen kannst, um deine Daten visuell aufzubereiten.
  • Experimentiere mit verschiedenen Farbwerten und Bedingungen, um ansprechende und informative Excel-Dashboards zu erstellen.
  • Halte deinen VBA-Code sauber und dokumentiert, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Kann ich die Zellfarbe direkt in einer bedingten Formatierung verwenden? Nein, in Excel gibt es keine direkte Möglichkeit, die Zellfarbe als Bedingung in der bedingten Formatierung zu verwenden. Du musst dafür VBA verwenden.

2. Welche Excel-Version benötige ich für die oben genannten Funktionen? Die oben genannten VBA-Funktionen sind ab Excel 2010 (Xl14) verfügbar. Stelle sicher, dass du eine aktuelle Version von Excel verwendest, um alle Funktionen nutzen zu können.

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