Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1384to1388
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

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

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:-?
:-?

352 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige