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

Forumthread: wenn das dann die schriftfarbe ändern

wenn das dann die schriftfarbe ändern
09.10.2014 13:01:31
Falo
Hallo,
ich möchte wenn in der Spalte, "T" ein F steht das die Schriftfarbe in der gleichen Zeile "J" Schwarz ist. wenn S steht Blau ist, wenn N steht Rot ist. kann mir einer einen Tipp geben, es soll keine Formel sein.
Mit freundlichen Grüßen aus dem Sauerland
Olaf

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn das dann die schriftfarbe ändern
09.10.2014 13:14:21
Daniel
Hi
Da musst du für die Spalte J drei bedingte Formatierungen anlegen (reicht ja) mit regel:
rot: =$T1="N"
blau: =$T1="S"
für schwarz brauchst du keine Regel, weil Schwarz ja normalerweise die Standardfarbe ist.
nur wenn die normale Farbe nicht schwarz ist, käme halt noch die 3. Regel mit
schwarz: =$T1="F"
ohne Formeln wirst du nicht auskommen, weil die Farbe der Zelle nicht durch den Wert in der Zelle selbsts sondern durch den Wert einer anderen Zelle bestimmt wird und das kann Excel nur über Formeln realisieren.
Gruß Daniel

Anzeige
AW: wenn das dann die schriftfarbe ändern
09.10.2014 13:45:25
Adis
Hallo
wenn es keine Formel sein soll geht die Farb Auswertung nur per Makro. Anbei 2 Beispiele.
Der Unterschied liegt in Einzel Auswertung oder varrangig und ausschliessend auswerten,
wenn in dem Text 2 oder 3 Buchstaben vorkommen. z.B. T, S, N gemeinsam in einer Zelle.
Dann macht sich der Unterschied beim markieren bemerkbar. Welcher Buchstabe hat Vorrang?
Aus der Aufgabenstellung war auch nicht ersichtlich ob es immer Grossbuchstaben sind?
Ob sie mitten im Text vorkommen, oder am Anfang stehen? Das kann man berücksichtigen.
Mein Vorschlag ist somit eine Standard Lösung wie es grundsaetzlich machbar ist.
Das Ergebnis sollte ja die Zellen in Spalte "J" markieren, oder ?
Sub Schriftfarbe_aendern_Standard()
Dim i as Variant
For Each i In Columns("T")
'Farbeaenderung mit  Einzel Auswertung
If InStr(i, "F") Then Cells(i.Row, "J").Font.ColorIndex = 1
If InStr(i, "S") Then Cells(i.Row, "J").Font.ColorIndex = 5
If InStr(i, "N") Then Cells(i.Row, "J").Font.ColorIndex = 3
'die letzte Auswertung überschreibt vorherige Aenderungen !!
Next i
End Sub
Sub Schriftfarbe_vorrangig_aendern()
Dim i as Variant
For Each i In Columns("T")
'Farb Auswertung im Ausschluss Verfahren  (vorrangig)
If InStr(i, "N") Then
Cells(i.Row, "J").Font.ColorIndex = 3
ElseIf InStr(i, "S") Then
Cells(i.Row, "J").Font.ColorIndex = 5
ElseIf InStr(i, "F") Then
Cells(i.Row, "J").Font.ColorIndex = 1
End If
Next i
End Sub
Gruss Adis

Anzeige
AW: wenn das dann die schriftfarbe ändern
09.10.2014 15:50:08
Falo
Hallo Adis,
Danke für deine Tipps, ich bekomme bei beiden Makros eine Fehlermeldung VBA-Laufzeitfehler 13 Typen unverträglich. Was kann das sein.
Mit freundlichen Grüßen aus dem Sauerland
Olaf

AW: wenn das dann die schriftfarbe ändern
09.10.2014 16:29:37
Falo
Hallo Adis,
Danke ich werde es anders regeln.
Mit freundlichen Grüßen aus dem Sauerland
Olaf

Anzeige
Deine For Each Zyklen sind ungeschickt ...
09.10.2014 18:48:44
Luc:-?
…konstruiert, adis,
denn sie nutzen den Vorteil dieses ZyklusTyps nicht wirklich und es fehlt auch was. Außerdem ist die AuswahlMethode ungünstig. Für den jeweils alleinigen Zellwert F/S/N besser so:
  Dim xZ As Range
For Each xZ In Columns(20).Cells
'Farbänderung mit EinzelAuswertung
Select Case xZ
Case "F": xZ.Offset(0, -10).Font.Color = vbBlack
Case "S": xZ.Offset(0, -10).Font.Color = vbBlue
Case "N": xZ.Offset(0, -10).Font.Color = vbRed
End Select
'die letzte Auswertung überschreibt vorherige Änderungen !!
Next xZ
Falls auch auf jedes F/S/N in einem beliebigen Text reagiert wdn soll, muss die Case-Anweisung Case Like "*F*" lauten.
Der Fehler, Olaf,
entsteht primär dadurch, dass Cells fehlt. Dadurch wird der Zyklus nur 1× durchlaufen und gibt die ganze Spalte zurück. i ist somit ein Datenfeld aus allen Werten der Spalte, dem sicher nicht in Gänze eine Schriftfarbe zugewiesen wdn soll. Der Fehler tritt dann allerdings schon bei Instr auf, denn diese vbFkt kann kein ganzes Datenfeld verarbeiten.
Im Übrigen empfehle ich hier doch besser eine BedingtFormatierung, denn die sorgt auch automatisch für die Wiederherstellung des Ursprungszustandes, wenn die Bedingung nicht mehr erfüllt ist. Mit dem Makro dagg wird die Schrift der anderen Zelle dauerhaft gefärbt, denn eine Rückstellung (Case Else) fehlt hier (das ist auch nur für StandardFarbEinstellungen ohne ggf größeren Aufwand zu realisieren!). Nebenbei, die BedingtFormatierung kann man auch per Makro eintragen.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Deine For Each Zyklen sind ungeschickt ...
09.10.2014 19:45:27
Falo
Hallo,
Dank klapp jetz SUPER
Gruß Olaf

Na, dann iss ja jut...! owT
09.10.2014 20:47:09
Luc:-?
:-?
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Schriftfarbe in Excel ändern, wenn eine Bedingung erfüllt ist


Schritt-für-Schritt-Anleitung

Um die Schriftfarbe in Excel automatisch zu ändern, wenn in einer bestimmten Zelle eine Bedingung erfüllt ist, kannst du die bedingte Formatierung nutzen. Hier ist eine einfache Anleitung:

  1. Zellen auswählen: Markiere die Zellen in Spalte "J", deren Schriftfarbe du ändern möchtest.
  2. Bedingte Formatierung öffnen: Gehe zu "Start" > "Bedingte Formatierung" > "Neue Regel".
  3. Regeltyp auswählen: Wähle "Formel zur Ermittlung der zu formatierenden Zellen verwenden".
  4. Formel eingeben:
    • Für die Farbe Rot, wenn in Spalte "T" ein "N" steht:
      =$T1="N"
    • Für die Farbe Blau, wenn in Spalte "T" ein "S" steht:
      =$T1="S"
    • Die Standardfarbe (Schwarz) wird automatisch angewendet, wenn in Spalte "T" ein "F" steht.
  5. Format festlegen: Klicke auf "Format" und wähle die gewünschte Schriftfarbe aus.
  6. Regel anwenden: Bestätige mit "OK" und schließe die Dialogfenster.

Häufige Fehler und Lösungen

  • Fehler: Schriftfarbe lässt sich nicht ändern: Stelle sicher, dass du die richtige Zelle in der Formel referenzierst. Überprüfe die Zeilen- und Spaltenbezüge.
  • Fehler: VBA-Laufzeitfehler 13: Dieser Fehler tritt auf, wenn der Datentyp nicht übereinstimmt. Achte darauf, dass du die richtigen Datentypen in deinem VBA-Code verwendest.
  • Fehler: Schriftfarbe ändert sich nicht automatisch: Überprüfe, ob die bedingte Formatierung korrekt angewendet wurde und ob keine anderen Formatierungen die Änderungen überschreiben.

Alternative Methoden

Wenn du keine Formeln verwenden möchtest, kannst du auch VBA nutzen, um die Schriftfarbe zu ändern. Hier ist ein Beispiel:

Sub Schriftfarbe_aendern()
    Dim i As Variant
    For Each i In Columns("T")
        Select Case i
            Case "F": Cells(i.Row, "J").Font.Color = vbBlack
            Case "S": Cells(i.Row, "J").Font.Color = vbBlue
            Case "N": Cells(i.Row, "J").Font.Color = vbRed
        End Select
    Next i
End Sub

Diese Methode ermöglicht es, die Schriftfarbe basierend auf den Werten in der Spalte "T" zu ändern.


Praktische Beispiele

  1. Beispiel 1: Wenn in Zelle T2 ein "N" steht, wird die Schriftfarbe in J2 rot.
  2. Beispiel 2: Bei "S" in T3 wird die Schriftfarbe in J3 blau.
  3. Beispiel 3: Standardmäßig bleibt die Schriftfarbe in J4 schwarz, wenn in T4 ein "F" steht.

Tipps für Profis

  • Nutze die bedingte Formatierung, um mehrere Bedingungen zu kombinieren.
  • Du kannst die bedingte Formatierung auch auf ganze Bereiche anwenden, um die Übersichtlichkeit zu erhöhen.
  • Denk daran, die Regeln in der Reihenfolge zu erstellen, in der sie angewendet werden sollen, da die erste passende Regel die anderen übersteuert.

FAQ: Häufige Fragen

1. Frage
Wie kann ich die Schriftfarbe ändern, wenn der Wert in einer Zelle steht?
Antwort: Verwende die bedingte Formatierung und gib die entsprechende Formel ein, um die Schriftfarbe zu ändern, wenn eine Bedingung erfüllt ist.

2. Frage
Kann ich die Schriftfarbe automatisch ändern, ohne VBA zu verwenden?
Antwort: Ja, du kannst die bedingte Formatierung in Excel verwenden, um die Schriftfarbe basierend auf Zellwerten zu ändern.

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