Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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
Antworten 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
Antworten Top
#5
Hallo,

(28.10.2020, 14: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
Antworten 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
Antworten 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
Antworten Top
#8
Hallo,

bitte nicht jede einzelne Codezeile in Codetags setzen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top


Gehe zu:


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