Excel: Kann man eine Zelle automatisch markieren, wenn ein "roter" Text drin steht?
Hallo
habe folgendes Problem:
Meine Tabelle hat immer mal wieder roten Text und genau da wo der rote Text ist soll die Zelle rot markiert werden!
Normale Zellen mit einem bestimmten Wort wie man die markiert habe ich herausgefunden über bedingte Formatierung aber wie geht das wenn meine Schriftfarbe rot ist und es davon abhängig ist??
In Hoffnung auf Hilfe
4 Antworten
Die in der AW von Topotek im Link genannte Funktion (DH für den Link!) Zelle.zuordnen hat für die Schriftfarbe eine andere Nummer (als für den Hintergrund), steht i' wo in der Hilfe zur Formel.
ABER: kommt die Schriftfarbe durch eine bedingte Formatierung zustande, geht das nicht, das ist eine völlig andere Eigenschaft. Ist leider auch mit Makros unterschiedlich.
Es ist wahrscheinlich tatsächlich die beste Lösung, wie gfntom vorschlägt, die Feiertage zu ermitteln, wobei ich das aber nicht per Makro machen würde, sondern per Formel: Die Feiertage haben entweder ein festes Datum (1.Jan., 6.Jan(regional), 1.Mai, 15.Aug.(reg), 3.Okt., Weihnachten)
oder eine feste Differenz zu Ostern (von Weiberfastnacht bis Fronleichnam),
und Ostern kann man auch mit Gauss ebenfalls per Formel ermitteln. (müsste ich tief graben, hab ich aber, evtl auch aus dem kommentar von A-Chris zum gfntom-µ ableitbar.
Nur der Buß-und Bettag hat als 3.Mi im November eine etwas kompliziertere Formel, aber machbar (ähnlich auch 1.-4. Adventssonntag).
Bei Bedarf hier nachfragen (und viel Geduld mitbringen).
Fürs Einfärben braucht man dann entweder die bedingte Formatierung oder ein Makro.
Da es dir darum geht, Feiertage anzuzeigen, hier eine Kopie einer Antwort, die ich auf ein ähnliches Thema gegeben habe.
Die Lösung mit der bedingten Formatierung über die Farbe einer anderen Zelle ist nicht gerade elegant. Vielleicht helfen dir mein Code.
Hier die meine selbstgeschriebenen Funktionen für das Osterdatum und die Feiertage. In der Version wird bei =Feiertag(Datum) WAHR zurückgeliefert, wenn es sich um einen österreichischen Feiertag habdelt, ansonstens wird FALSCH zurückgeliefert.
Welche Tage als Feiertage gelten, kann in der If / ElseIf-Konstruktion am Ende der Funktion "Feiertag" angepasst werden.
Function Ostern(J%) As Date
Dim A%, B%, C%, D%, E%, M%, N%, P%
A = J Mod 19
B = J Mod 4
C = J Mod 7
M = 24
N = 5
D = (19 * A + M) Mod 30
E = (2 * B + 4 * C + 6 * D + N) Mod 7
P = 22 + D + E
If P > 31 Then
If P = 56 And D = 28 And A > 10 Then
Ostern = DateSerial(J, 4, 18)
ElseIf P = 57 Then
Ostern = DateSerial(J, 4, 19)
Else
Ostern = DateSerial(J, 4, P - 31)
End If
Else
Ostern = DateSerial(J, 3, P)
End If
End Function
Function Feiertag(X) As Date
Dim D%, M%, Y%, O
D = Day(X)
M = Month(X)
Y = Year(X)
O = Ostern(Y)
Feiertag = False
If X = O Or X = O + 1 Or X = O + 39 Or X = O + 50 Or X = O + 60 Then
Feiertag = True
ElseIf (M = 1 And (D = 1 Or D = 6)) Or (M = 5 And D = 1) Or (M = 8 And D = 15) Or _
(M = 10 And D = 26) Or (M = 11 And D = 1) Or (M = 12 And (D = 8 Or D = 25 Or D = 26)) Then Feiertag = True
End If
End Function
DH!
DASS es ohne VBA funktioniert, war mir klar, allerdings nicht in der Kürze.
Auch wenn die Formel nicht für alle Zeiten korrekt arbeitet, so ist sie doch elegant und brauchbar.
Hallo,
was ist denn die Bedingung für rote Schrift? Z.B. bei negativen Zahlen ist die Bedingung klar. Ich schaue gleich mal nach der VBA Codierung - per Makro kann an der Stelle ganz einfach eine Bedingung erstellt werden.
Auch bei nicht negativen Zahlen - z.B. wenn ein Wert (z.B. eine Zielmarge) unterschritten wird.
LG
Henri
Hi, sorry, ich stehe auf dem Schlauch. Meinst du, dass innerhalb einer Zelle zwei verschiedene Farben entstehen sollen?
Schick am besten mal einen Screenshot wenn möglich ...
LG
Es geht um einen Kalender wenn da zum Beispiel rechts in rot ein Feiertag steht dann soll die Zeile rot sein!das Problem ist das rechts auch noch anderer Text steht was keine Feiertage sind deswegen muss es von der Text Farbe zwingend abhängig sein!
Das ist nicht ganz einfach, aber evtl. über eine Formel ebenfalls mit der bedingten Formatierung zu lösen.
Hier mal ein Link, da ging es zwar un die Füllfarbe, aber das kann man sicher anpassen:
Gauß funktioniert auch ohne VBA:
Jahr in A1.
=RUNDEN((TAG(MINUTE(A1/38)/2+55)&".4."&A1)/7;)*7-6