Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Textfarbe ändern ohne bedingte Formatierung.





Frage

Hallo Excelfreaks, ist es möglich das sich bei der Eingabe des Buchstabens "K" oder "N" in eine Zelle die Textfarbe automatisch in rot umstellt und bei der Eingabe des Buchstabens "U" in grün umstellt. Zu beachten ist, das alle der drei möglichen bedingten Formatierungen für andere Zwecke vergeben sind. Eine manuelle Textfarbenänderung ist auch nicht möglich da die Seite Schreibgeschüzt ist. Ich hoffe das mir jemand helfen kann würde mich sehr freuen. Gruß Michael

Antwort 1 von want2cu

Hallo Michael,

das müßte über VBA machbar sein.
Da du die Lösung über die bedingte Formatierung ausschließt, müßte dir hier jemand aus der "VBA-Fraktion" weiterhelfen.

Ich meine, das mal hier im SN ein Beitrag gepostet wurde, wo es darum ging, das mit VBA mehr als 3 Möglichkeiten bei der bedingten Formatierung machbar sind.

Vielleicht weiss ja jemand noch genaueres.

Ansonsten mal suchen unter "bedingte Formatierung" und "mehr als 3 Bedingungen".

Viel Erfolg ;-)

CU
want2cu

Antwort 2 von coros

Hi Michael,

klar, machbar ist fast alles, wenn man genügend Infos hat. Also, in welcher Zelle sollen die Buchstaben eingegeben werden, welcher Bereich soll die Farbe ändern, soll die farbe dauerhaft geändert werden oder gibt es dafür irgendwelche Kriterien ausser der Buchstaben.

Du solltest hier Dein Problem doch noch etwas genauer beschreiben, dann kann man Dir sicherlich helfen.

MfG,
coros
Jeder macht was er will, keiner macht was er soll aber alle machen mit.

Antwort 3 von Michael10

Hallo Coros,erst mal danke für deine schnelle Antwort.
Es handelt sich bei der Datei um einen Dienstplan.
Die Datei hat zwölf Seiten für die Monate.Die beste Lösung wäre für mich, wenn egal in welcher Zelle dieser zwölf Seiten ich den Buchstaben "N" oder "K" eingebe sich die Textfarbe in Rot umstellt und bei der Eingabe des Buchstabens "U" in grün umstellt.Wenn ich einen anderen Buchstaben in eine Zelle eingebe sollte sich natürlich die Textfarbe wieder in schwarz ändern.
Ich hoffe das dir diese Info reicht um mir weiter
helfen zu können.
Gruß Michael

Antwort 4 von coros

Hi Michale,

soll denn der gesamte Text, der sich in dem Tabellenblatt befindet, rot oder grün eingefärbt werden oder nur die Zeile, in der der Buchstabe eingegeben wird? Soll der Text in allen 12 Tabellenblätter gleichzeitig geändert werden oder immer nur in dem gerade aktiven Tabellenblatt?
Da ich mal davon ausgehe dass es sich bei den Kürzeln um Urlaub oder Krankheit handelt,verstehe ich nicht ganz, dass irgendwo in einer vorhandenen Maske einfach so ein Buchstabe eingegeben werden kann, ohne dabei eventuell einen vorhandenen Eintrag damit zu Überschreiben. Eigentlich hat man doch für solche Kürzel eine seperate Spalte.

MfG,
coros
Jeder macht was er will, keiner macht was er soll aber alle machen mit.

Antwort 5 von coros

Hi Michael,

nachfolgend ein Makro, dass die Schriftfarbe in der ganze Zeile ändert, in der der Buchstabe eingegeben wurde. Es spielt dabei keine Rolle, in welcher Zelle der Buchstabe eingegeben wurde.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  Select Case Target.Value
    Case "k"
      Rows(Target.Row).Font.ColorIndex = 3
    Case "u"
      Rows(Target.Row).Font.ColorIndex = 4
    Case Else
      Rows(Target.Row).Font.ColorIndex = xlColorIndexAutomatic
  End Select
End Sub


Den Code fügst Du in Deine Tabellenblätter ein.

Ich hoffe, ich konnte Dir weiterhelfen,
coros
Und nicht vergessen, hier noch einmal zu posten, ob Dich die Hilfe weitergebracht oder sogar
Dein Problem gelöst hat.

Antwort 6 von nighty

hi alle

das ist einfach :)

noch ein vorschlag :)

unter ALLGEMEIN makro1 einzutragen

Sub Makro1()
On Error Resume Next
adress$ = ActiveWindow.RangeSelection.Address
adress1 = Len(adress$)
For mo = 1 To adress1
If Mid$(adress, mo, 1) = "$" Then
llp = llp + 1
Else
If llp = 1 Then
spalte$ = spalte$ + Mid$(adress, mo, 1)
End If
If llp = 2 Then
zeile$ = zeile$ + Mid$(adress, mo, 1)
zeile1 = Val(zeile$)
End If
End If
Next mo
If Range(spalte$ & zeile1) = "k" Or Range(spalte$ & zeile1) = "u" Or Range(spalte$ & zeile1) = "n" Then
If Range(spalte$ & zeile1) = "k" Then Selection.Font.ColorIndex = 16
If Range(spalte$ & zeile1) = "u" Then Selection.Font.ColorIndex = 26
If Range(spalte$ & zeile1) = "n" Then Selection.Font.ColorIndex = 46
Else
Selection.Font.ColorIndex = 0
End If
End Sub

DIESES unter WORKSHEET SELECTIONCHANGE

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Call Makro1
End Sub

kuerzel= k u n
entsprechend seinen wuenschen anzupassen

zugeordnete farben
k=16
u=26
n=46

entsprechend zu aendern bei anderer farbwahl

gruss nighty

Antwort 7 von coros

Hi,

noch ein Nachtrag, da @nighty nur von der Zelle ausgeht, in der der Buchstabe geschrieben wird. In meinem Makro muss der Text Rows(Target.Row).Font.ColorIndex gegen Target.Font.ColorIndex getauscht werden. Dann wird nur der Text, in der der Eintrag getätigt wurde gefärbt.

MfG,
coros
Jeder macht was er will, keiner macht was er soll aber alle machen mit.

Antwort 8 von Michael10

Hallo Coros und Nighty,
erst mal vielen Dank für schnelle die Hilfe.
Also Nightys Version des Markros habe ich zu laufen bekommen das geht auch super.
Coros deine Version geht auch, aber die Änderrung
die du beschrieben hast bekomm ich nicht hin, so
das die Änderrung der Farbe sich nur auf die Zelle bezieht in die ich die jeweilige Eingabe mache.
Es wäre super du könntest das nochmal hier rein stellen oder mir eine Beispieldatei mailen.

Die Farben ändern sich durch die jeweilegen Zahlen
das habe ich kapiert aber wie oder wo finde ich eine Farbpalette in der ich die Farben mit den Zahlen sehe.
Also nochmal vielen Dank an euch.
Gruß Michael


Antwort 9 von nighty

hi alle

makro zum anzeigen der farbindexe

Sub Makro1()
For t = 0 To 56
Range("a" & t + 1) = "test - nummer" + Str$(t)
Range("a" & t + 1).Select
Selection.Font.ColorIndex = t
Next t
End Sub

wies aussieht zur zeit sind wohl nur farben mit einem index von 0-56 erlaubt.

gruss nighty

Antwort 10 von Michael10

Hallo Nighty,
jetzt hast du mich überschätz, wie kann ich Mokro
einsetzen.
Gruß Michel

Antwort 11 von nighty

hi

das makro ist nur zum farbindex ermitteln
daher eine leere tabelle

makrotext vorher mit markierung kopieren

zu exel wechseln

extras/makro/visualbasiceditor aufrufen

dort unter einfuegen/modul aufrufen

dort den zuvor kopierten makrotext einfuegen

im oberen menue ausfuehren/subuserform ausfuehren anwaehlen,makroeditor schliessen das exel zu sehen ist bzw. die farbwerte.

gruss nighty

Antwort 12 von Michael10

Hallo Nighty
vielen Dank für die Hilfe jetzt hab ich es kapiert
Gruß Michael

Antwort 13 von coros

Moin an alle,

aus Zeitnot habe ich Michael gestern eine Beispieldatei geschickt, die u.a. die von ihm geforderte Funktion enthält. Für alle die es interessiert: Soll nur der Text in der Zelle gefärbt werden, in der ein Eintrag stattfindet, muss die Anweisung

Rows(Target.Row).Font.ColorIndex

in

Target.Font.ColorIndex

geändert werden.
Dieses Makro eignet sich hervorragend wenn die 3 bedingten Formatierungen, die Excel zur Verfügung stellt, nicht ausreichen. Einfach eine neue Case-Anweisung dazu schreiben und hinter Case die Bedingung.

MfG,
coros
Und nicht vergessen, hier noch einmal zu posten, ob Dich die Hilfe weitergebracht oder sogar
Dein Problem gelöst hat.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: