VBA Makro bei best. Wert ganze Zeile färben
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 schreiben
Antwort 1 von M.O. vom 28.08.2020, 08:44 Options
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 vom 28.08.2020, 08:49 Options
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 vom 29.08.2020, 17:38 Options
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 vom 01.09.2020, 10:26 Options
Dankeschööön! Das hat geklappt! Vielen Dank!
Grüße!
Timo
Antwort 5 von schnallgonz vom 01.09.2020, 20:42 Options
Hallo Timo
Danke für die Rückmeldung.
mfg
schnallgonz