ich bin VBA-Anfängerin und möchte gerne mittels eines Makros erreichen, dass bestimmte Textteile, die Ergebnis einer Formel sind, in verschiedenen Farben eingefärbt werden.
Wenn ein Teil des Formelergebnisses "(rot)" enthält, dann soll dieser Textteil rot gefärbt werden, und der Textteil "(blau)" blau gefärbt werden, ohne dass ich auch jedes Mal das Makro wieder starten muss.
Das Problem meines Makros ist, dass wenn ich z.B. in Zelle A1 "uuu(blau)und(rot)" als Text eingebe, dann soll ja nur "(blau)" blau geschrieben sein und "(rot)" rot gefärbt sein, stattdessen ist "uuu(blau)und" blau eingefärbt. Zweites Problem, was damit wahrscheinlich zusammenhängt, ist, dass wenn ich eine Formel (z.B. sage, dass in A2 der Text aus A1 stehen soll), dann ist die Färbung ebenfalls wieder falsch:
"uuu(blau)und(rot)" ist komplett rot, obwohl "uuu" schwarz sein soll, "(blau)" blau, "und" soll schwarz sein, und "(rot)" wieder rot.
Bisher habe ich dazu folgendes Makro geschrieben:
Sub TextPartColourMacro()
' Declarations and Initialisation
Dim Row As Integer, Col As Integer
Dim CurrentCellText As String
Col = 1
' Loop Through Rows 2 to 5
For Row = 1 To 50
' Get Text in Current Cell
CurrentCellText = ActiveSheet.Cells(Row, Col).Value
' Get the Position of the Text rot and blau
RotStartPosition = InStr(1, CurrentCellText, "(rot)")
BlauStartPosition = InStr(1, CurrentCellText, "(blau)")
' Colour the Word (rot) Red
If RotStartPosition > 0 Then
ActiveSheet.Cells(Row, Col).Characters(RotStartPosition, 5).Font.Color = RGB(255, 0, 0)
End If
' Colour the Word (blau) Blue
If BlauStartPosition > 0 Then
ActiveSheet.Cells(Row, Col).Characters(BlauStartPosition, 6).Font.Color = RGB(0, 0, 255) _
_
End If
Next Row
End Sub
Anbei die Excel-Datei.
https://www.herber.de/bbs/user/116244.xlsm
Könnt ihr mir helfen?