Hallo zusammen
Ich habe in VBA Excel eine Function geschrieben/angepasst die wahr oder flasch zurückgibt wenn bei der referenzzelle die textfarbe rot oder nicht rot ist.
Function HighlightRedFont(pRg As Range) As Boolean
'Updateby ExtendOffice
Dim xRg As Range
Dim xBol As Boolean
xBol = False
For Each xRg In pRg
If xRg.Interior.Color = RGB(255, 255, 255) Or xRg.Interior.Color = RGB(242, 242, 242) Or xRg.Interior.Color = RGB(252, 222, 198) Then
If xRg.Font.Color = RGB(255, 0, 0) Then
xBol = True
End If
Else: GoTo Ende
End If
Next
HighlightRedFont = xBol
Ende:
End Function
Diese function habe ich mit der bedingten formatierung auf eine Zelle angewendet: Formel: =@HighlightRedFont(D20)
Wie ihr seht habe ich in der function eine if else bedingung eingebaut die sich auf die zellfarbe bezieht -> die refernezzelle (xRg) bezieht sich hier aber auf die Zelle D20 wo der text mit rot oder nicht rot drinsteht. Diese if else Bedingung möchte ich aber auf die Zelle (E20) anwenden wo die bedingte Formatierung angewendet ist.
Referenzzelle |
Zelle mit bedingter Formatierung |
Text |
|
Warum möchte ich das: Damit die bedingte formatierung die auf der function basiert nur bei bestimmten zellfarben angewendet wird, respektive übersteurt wird wenn die wirkliche zellfarbe nicht = weiss ist.
Aber wie referenziere ich auf die Zelle E20 in der function?
Zudem habe ich das Problem dass durch das ändern der Textfarbe das Worksheet_change ereingis nicht ausgelöst wird, nur wenn ich z.B. den Text an sich ändere. Die Function wird nur neu "gerechnet" durch das worksheet_change ereignis. Mir würde es aber reichen wenn ich das durch einen commanbutton manuell mit einem sub auslösen könnte. Da habe ich aber weder was gefunden noch hingebracht.
Ich wäre froh wenn ihr mir zu den zwei Problemen ein paar Inputs geben könntet.
Vielen Dank:)
|