Bedingte Formatierung - mehrfarbiger Text nach unterschiedlichen Werten in derselben Zelle

405
SidSen

Ich bereite also eine Art Bericht in Excel vor und habe mich gefragt, ob ich Text in einer bestimmten Spalte anhand der Werte formatieren kann, die darin enthalten sind. Um genau zu sein, gibt es zwei Textgruppen und die Farbgruppe 1 ist grün und die andere eine andere Farbe.

Hier ist ein Beispielbild - wo ich möchte, wenn A, B und C in der Zelle vorkommen, sie rot gefärbt sein soll und wenn X, Y oder Z in der Zelle vorkommt, ist sie grün gefärbt. Hierbei werden die Zahlen in den Klammern und die Klammern selbst ignoriert.

Beispielbild -

Bedingte Formatierung - mehrfarbiger Text nach unterschiedlichen Werten in derselben Zelle

Ist das überhaupt möglich mit bedingter Formatierung? Jede Hilfe wird geschätzt.

0
Dies ist nicht über eine bedingte Formatierung möglich, da im Grunde dasselbe Format auf die gesamte Zelle angewendet werden kann. Sie benötigen VBA und gehen nach Bedarf durch den Zellinhalt und die Farbzeichen. BruceWayne vor 5 Jahren 0

1 Antwort auf die Frage

1
Rajesh S

Da VBA-Codes für die Aufgabe geeignet sind, möchte ich MACRO vorschlagen, um das Problem zu beheben.

Sub ColourPartiaText()  Dim Row As Integer, Col As Integer Dim CurrentCellText As String Col = 1   For Row = 2 To 5   CurrentCellText = ActiveSheet.Cells(Row, Col).Value   HotStartPosition = InStr(1, CurrentCellText, "A") CoolStartPosition = InStr(1, CurrentCellText, "B") CoolStartPosition1 = InStr(1, CurrentCellText, "C") CoolStartPosition2 = InStr(1, CurrentCellText, "X") CoolStartPosition3 = InStr(1, CurrentCellText, "Y") CoolStartPosition4 = InStr(1, CurrentCellText, "Z")   If HotStartPosition > 0 Then ActiveSheet.Cells(Row, Col).Characters(HotStartPosition, 1).Font.Color = RGB(255, 0, 0) End If   If CoolStartPosition > 0 Then ActiveSheet.Cells(Row, Col).Characters(CoolStartPosition, 1).Font.Color = RGB(255, 0, 0) End If  If CoolStartPosition1 > 0 Then ActiveSheet.Cells(Row, Col).Characters(CoolStartPosition1, 1).Font.Color = RGB(255, 0, 0) End If  If CoolStartPosition2 > 0 Then ActiveSheet.Cells(Row, Col).Characters(CoolStartPosition2, 1).Font.Color = RGB(51, 153, 51) End If  If CoolStartPosition3 > 0 Then ActiveSheet.Cells(Row, Col).Characters(CoolStartPosition3, 1).Font.Color = RGB(51, 153, 51) End If  If CoolStartPosition4 > 0 Then ActiveSheet.Cells(Row, Col).Characters(CoolStartPosition4, 1).Font.Color = RGB(51, 153, 51) End If  Next Row End Sub 

Wie es funktioniert:

  1. Schreibe Daten von Column Aaus Row 2 to 5.
  2. Drücken Sie Alt+F11, um das VB-Editor-Fenster zu öffnen.
  3. Copy& Pastediesen Code als standard module.
  4. Führen Sie schließlich das Makro aus.

NB

  • In Code Col=1und können For Row = 2 To 5bearbeitet werden, können Sie die Column & Row positionDatenplatzierung in Ihrem Arbeitsblatt anpassen .
  • Farbcodes sind auch editierbar.
Das hat wunderbar funktioniert! Ich musste ein paar Änderungen für meine eigentliche Implementierung vornehmen, aber das ist mehr oder weniger das, was ich brauche. Vielen Dank! für andere - Zeichen (HotStartPosition, 1) ändern die "1" in die Anzahl der Zeichen, die in Ihrem eigentlichen Text eingefärbt werden sollen. SidSen vor 5 Jahren 0
Ich bin froh, Ihnen helfen zu können Rajesh S vor 5 Jahren 0
Ja ,, Variablenname ,, Die Zeichenposition kann bearbeitet werden. Sie können sie nach Bedarf anpassen. Rajesh S vor 5 Jahren 0