Excel vbs: Zellfarbe automatisch ändern bei Uhrzeit
Hallo,
ich möchte für einen Dienstplan, dass, wenn ich eine bestimmte Uhrzeit in die Zelle eintrage, sich die Zellfarbe ändert.
Dazu habe ich folgendes Script genommen:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Cells.Count > 1 Then Exit Sub
Select Case Target.Value
'bei Zeit "19:00" Hintergrundfarbe lila
Case "19:00"
Target.Interior.ColorIndex = 39
Case Else
Target.Interior.ColorIndex = xlNone
End Select
End Sub
Das funktioniert solange ich die Zelle als Text formatiere. Formatiere ich in Uhrzeit, funktioniert es nicht mehr. Woran liegt das?
Wenn ein VBS-Experte antwortet, vielleicht weiss er auch eine Antwort auf weitergehende Ideen von mir:
Ich habe in einer Zelle die Anfangszeit, rechts daneben die Endzeit.
1) Ist es möglich, wenn ich eine bestimmte Zeit eintrage, z.B. Beginn 8:00, dass dann die Zelle rechts daneben (Feierabend) automatisch die selbe Farbe bekommt?
2) Beide Zellen erhalten die selbe Farbe, wenn bestimmte Bedingenen erfüllt sind, z.B. Arbeitszeit länger als 10 Std (Beginn 08:00 Ende 18:00).
Ich glaube, dass kann aber nur funktionieren wenn das Uhrzeitproblem gelöst ist.
Schon ganz vielen Dank im Voraus!
Gruß
Sascha
Antwort schreiben
Antwort 1 von Arno_Nym vom 10.12.2019, 10:19 Options
Zitat:
Das funktioniert solange ich die Zelle als Text formatiere. Formatiere ich in Uhrzeit, funktioniert es nicht mehr. Woran liegt das?
Daran:
Case "19:00"
Du vergleichst Text. Also muß auch Text in der Zelle stehen (Datum ist eine Art Zahl).
Machs z.B. so:
Case CDate(#7:00:00 PM#)
Oder beides vergleichen (falls nicht sicher ist, ob Text oder Datum):
Case "19:00", CDate(#7:00:00 PM#)
Die weiteren Fragen hab ich mir jetzt nicht weiter angeschaut. Grad keine Zeit mehr... Geht aber sicherlich.
Arno
Antwort 2 von Dosas1848 vom 10.12.2019, 14:48 Options
Besten Dank, funktioniert super!
Vielleicht weiß auch auch noch jemand ne Antwort auf die anderen Fragen, wäre super!
Gruß
Sascha
Antwort 4 von finger59 vom 10.12.2019, 22:25 Options
Hi Sascha,
noch ein Nachtrag, falls Du doch mehrere Uhrzeiten mit einer bestimmten Farbe hinterlegen willst - allerdings immer mit der gleichen Farbe z.B. lila bei 8:00; 9:00 und 10:00 Uhr
dann müsstest Du jeweils die bedingte Formatierung der Zellen A1 und B1 in der zweiten und dritten Bedingung umschreiben.
Dann nicht mehr Zellwert ist, sondern Formel ist nehmen
und dann so verfahren wie bei diesem Thread...
http://www.supportnet.de/threads/1645437hier müsste nur die entsprechende Uhrzeit definiert sein:
bei 9:00 wäre es 0,375 bei 10:00 Uhr 0,416666666666667
- den Rest einfach über bedingte Formatierung sich anzeigen lassen.
Noch was zu meinem Beispiel...
Die Vorrangigkeit spielt eine große Rolle, da ja mehrere Bedingungen durchaus stimmen können und dann kommt es einfach auf die Priorität an. Hier habe ich zuerst die Stunden > 10 gesetzt und dann erst die 8:00, danach alles andere wie 8:00 unterhalb von 10 Stunden).
Die Stunden zur Beurteilung >>größer 10<< wurden bei mir in Zelle C1 ausgerechnet.
Gruß Helmut