kein Text in Zelle dann Farbe von Zelle ändern
#1
Guten Tag zusammen,

ich habe ein simples Problem, was mir selber leider riesen groß vorkommt.

Also ich habe 5 verschiedene Zellen, die von anderen Parametern abhängig sind.
Es kommt dann also auch vor, dass dort #NV steht, was auch kein Problem ist, nur das sieht leider nicht schön aus.
Meine Aufgabe ist, wenn diese #NV steht, soll dies ausgeblendet werden.

Mein Code
Code:
Private Sub Worksheet_Change(ByVal Target as Range) 

If Cells(30, 3).Text = "#NV" Then
Code:
        Worksheets("1").Range("C30").Font.Color = RGB(191, 191, 191)
Code:
     ElseIf Cells(30, 3).Text = "" Then
Code:
        Worksheets("1").Range("C30").Font.Color = vbBlack
Code:
    End If
Code:
    If Cells(30, 4).Text = "#NV" Then
Code:
        Worksheets("1").Range("D30").Font.Color = RGB(191, 191, 191)
Code:
    ElseIf Cells(30, 4).Text = "" Then
Code:
        Worksheets("1").Range("D30").Font.Color = vbBlack
Code:
    End If
Code:
    If Cells(30, 5).Text = "#NV" Then
Code:
        Worksheets("1").Range("E30").Font.Color = RGB(191, 191, 191)
Code:
    ElseIf Cells(30, 5).Text = "" Then
Code:
        Worksheets("1").Range("E30").Font.Color = vbBlack
Code:
    End If
Code:
    If Cells(30, 6).Text = "#NV" Then
Code:
        Worksheets("1").Range("F30").Font.Color = RGB(191, 191, 191)
Code:
    ElseIf Cells(30, 6).Text = "" Then
Code:
        Worksheets("1").Range("F30").Font.Color = vbBlack
Code:
    End If
Code:
    If Cells(30, 7).Text = "#NV" Then
Code:
        Worksheets("1").Range("G30").Font.Color = RGB(240, 240, 240)
Code:
    ElseIf Cells(30, 7).Text = "" Then
Code:
        Worksheets("1").Range("G30").Font.Color = vbBlack
Code:
    End If

End Sub



Mit diesem Code habe ich es schon geschafft, dass sich das #NV grau verfärbt und somit nicht mehr sichtbar ist. Das Problem ist jetzt aber, wenn ein X-beliebiger Text drin steht (Text in Zelle verändert sich) soll diese wieder schwarz werden.
Also grob gesagt, wenn in der Zelle nicht #NV steht, soll die Schrift schwarz sein, wenn nicht, wird die Farbe grau und somit unsichtbar, weil die Zelle grau ist.

Gruß ExcelVBAAnfänger
Top
#2
Hola,

und warum nimmst du nicht einfach die bedingte Formatierung dafür?

Gruß,
steve1da
[-] Folgende(r) 1 Nutzer sagt Danke an steve1da für diesen Beitrag:
  • ExcelVBAAnfänger
Top
#3
Hi steve1da,

das habe ich schon versucht, aber leider hat es nicht geklappt. Vielleicht weil der Fehler #NV durch sVerweise ensteht?
Oder spielt das keine Rolle und ich war einfach zu doof?

Gruß
ExcelVBAAnfänger
Top
#4
Hola,

das würde man so abfragen:

=istfehler(A2)

Und dann die Schriftfarbe auf grau setzen. A2 natürlich durch die richtige Zelle ersetzen.

Gruß,
steve1da
Top
#5
Hallo,

(28.10.2020, 15:46)ExcelVBAAnfänger schrieb: Vielleicht weil der Fehler #NV durch sVerweise ensteht?

lass gar nicht erst zu, dass ein #NV erscheint. Formel für C30 z.B.: =WENNFEHLER(SVERWEIS(B30;F:G;2;0);"")

Gruß Uwe
Top
#6
Hallo zusammen,

der Fehler entsteht zwangsweise bei mir im Tool, also da ist nicht zu rütteln.

Aber danke für eure Hilfe, habe es jetzt doch mit Bedingter Formatierung geschafft, habe erst jetzt gesehen, dass man dort auch einfach auf Fehler einstellen kann.

Gruß ExcelVBAAnfänger
Top
#7
Hallo zusammen,

habe jetzt leider eine neue Sache.

Ist es möglich, wenn in einer Zeile z.B. D11 der Fehler #NV steht, dass man nicht nur die Zelle ``unsichtbar´´ macht, sondern die komplette Reihe ausblendet?
Und was für einen Code bräuchte man?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(11, 3).Value = SpecialCells(xlCellsTypeFormulas, 16) Then
Rows("11").EntireRow.Hidden = True
ElseIf Cells(11, 3).Value <> SpecialCells(xlCellsTypeFormulas, 16) Then
Rows("11").EntireRow.Hidden = False
End If
If Cells(12, 3).Value = "#NV" Then
Rows("12").EntireRow.Hidden = True
ElseIf Cells(12, 3).Value <> "#NV" Then
Rows("12").EntireRow.Hidden = False
End If

End Sub


Habe es mit meinen beschränkten VBA Kenntnissen so ausprobiert, hatte auch 2 Ideen, aber mit beiden leider gescheitert.

Gruß
ExcelVBAAnfänger
Top
#8
Hallo,

bitte nicht jede einzelne Codezeile in Codetags setzen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste