Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

VBA Makro bei best. Wert ganze Zeile färben





Frage

Hallo! Ich habe eine Tabelle in der in Spalte A alle Tage des Jahres aufgeführt sind. In Spalte D habe ich eine Formel eingefügt, die feststellt, ob es sich beim Tag aus Spalte A um einen Feiertag handelt. Wenn ja, dann ist der Wert der jeweiligen Zelle "FT". Jetzt möchte ich, dass sich die ganze Zeile einfärbt, wenn in Spalte D der Zellenwert FT entsteht. Ich habe schon ein Makro was fast passt, allerdings erkennt es die Formelwerte nicht... Also die "FT" die schon da stehen durch die Formel werden nicht vom Makro erkannt - die Zeile wird nur eingefärbt wenn ich FT mauell eingebe.... und das ist nicht mein Ziel. Das Makro soll also das Ergebnis der Formel erkennen. Kann mir jemand helfen? Vielen Dank im Voraus! Hier das makro was ich bisher nutze: Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo Fehler Select Case Target.Column Case 4 'Spalte D Select Case Target.Value Case "FT" Target.EntireRow.Interior.Color = vbGreen Case Else Target.EntireRow.Interior.ColorIndex = xlNone End Select End Select Ende: Exit Sub Fehler: Resume Ende End Sub Die Formel die in Spalte D prüft ob es ein Feiertag ist sieht so aus: =IF(ISNA(VLOOKUP(B18;Feiertage08;3;FALSE));"";VLOOKUP(B18;Feiertage08;3;FALSE)) Gruß, Timo

Antwort 1 von M.O.

Hallo Timo,

wieso über VBA. Du kannst das auch über bedingte Formatierung lösen.
Die ganze Tabelle markieren - Format - Bedingte Formatierung
Dort "Formel ist" auswählen und =$D1="FT" als Formel eingeben, die Farbe auswählen und fertig.

Gruß

M.O.

Antwort 2 von timodeere

Hallo!

Sorry das hatte ich vergessen zu schreiben. Ich hab in meiner Tabelle mehr als 3 bedingte Formatierungen schon in den jeweiligen Zellen drin.... von daher kann ich das über die bedingte Formatierung nicht machen...

Trotzdem Danke!

Mfg timo

Antwort 3 von schnallgonz

Salve,
versuch' es mal hiermit:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(Target.Row, 4).Value = "FT" Then
Target.EntireRow.Interior.Color = vbGreen
Else
Target.EntireRow.Interior.ColorIndex = xlNone
End If
End Sub

MfG
schnallgonz

Antwort 4 von timodeere

Dankeschööön! Das hat geklappt! Vielen Dank!

Grüße!

Timo

Antwort 5 von schnallgonz

Hallo Timo
Danke für die Rückmeldung.
mfg
schnallgonz