Supportnet / Forum / Tabellenkalkulation
blinkendes Datumfeld
Frage
Hallo Exceluser,
wie kann ich eine Zelle zum Blinken bringen, die ein Datum, wie z.B. 13.10.04 oder 13.10.2004, enthält und noch in der Zukunft liegt, und wenn es aktuell wird, anfängt zu blinken . Ich habe schon andere Makros gesehen mit Zahlen, die bei einer bestimmten Bedingung blinkten, aber noch kein Datumsfeld.
Gruß Nobody007
Antwort 1 von coros
Moin Nobody,
das geht mit den nachfolgenden Codes.
Bitte in das VBA Projekt "DieseArbeitsmappe" kopieren:
Diesen Code bitte in das VBA Projekt der Tabelle kopieren, in dem die Zellfarbe blinken soll:
Diese Codes bitte in ein Standardmodul kopieren:
Bei Zelle A1 blinkt der Hintergrund, wenn das Datum entweder gleich dem aktuellen Datum ist, oder in der Vergangenheit liegt. Der Farbwechsel ist rot weiß.
Ich hoffe, Du kommst klar. Bei Fragen oder Problemen melde Dich noch mal.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
das geht mit den nachfolgenden Codes.
Bitte in das VBA Projekt "DieseArbeitsmappe" kopieren:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Beenden
End Sub
Private Sub Workbook_Open()
If IsDate("A1") = False Then
If Range("A1") = Now Then ersteFarbe
End If
End SubDiesen Code bitte in das VBA Projekt der Tabelle kopieren, in dem die Zellfarbe blinken soll:
Private Sub Worksheet_Change(ByVal Target As Range)
If IsDate("A1") = False Then
If Range("A1") <= Now Then
If Intervall = "" Then ersteFarbe
Else
Beenden
Range("A1").Interior.ColorIndex = 0
End If
End If
End Sub
Diese Codes bitte in ein Standardmodul kopieren:
Option Explicit
Public Intervall As Variant
Sub ersteFarbe()
Worksheets("Tabelle1") _
.Range("A1").Interior.ColorIndex = 3
Intervall = Now + TimeValue("00:00:01")
Application.OnTime Intervall, "zweiteFarbe"
End Sub
Sub zweiteFarbe()
Worksheets("Tabelle1") _
.Range("A1").Interior.ColorIndex = 0
Intervall = Now + TimeValue("00:00:01")
Application.OnTime Intervall, "ersteFarbe"
End Sub
Sub Beenden()
On Error Resume Next
Application.OnTime EarliestTime:=Intervall, _
Procedure:="ErsteFarbe", Schedule:=False
Application.OnTime EarliestTime:=Intervall, _
Procedure:="zweiteFarbe", Schedule:=False
Intervall = ""
End SubBei Zelle A1 blinkt der Hintergrund, wenn das Datum entweder gleich dem aktuellen Datum ist, oder in der Vergangenheit liegt. Der Farbwechsel ist rot weiß.
Ich hoffe, Du kommst klar. Bei Fragen oder Problemen melde Dich noch mal.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von coros
Hi,
ich noch mal. In dem Code für das VBA Projekt "DieseArbeitsmappe" hat sich doch ein kleiner Fehler eingeschlichen. Daher bitte nicht den obigen Code in das VBA Projekt kopieren, sondern den Nachfolgenden.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
ich noch mal. In dem Code für das VBA Projekt "DieseArbeitsmappe" hat sich doch ein kleiner Fehler eingeschlichen. Daher bitte nicht den obigen Code in das VBA Projekt kopieren, sondern den Nachfolgenden.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Beenden
Worksheets("Tabelle1").Range("A1").Interior.ColorIndex = 0
End Sub
Private Sub Workbook_Open()
If IsDate("A1") = False Then
If Range("A1") <= Now Then ersteFarbe
End If
End Sub
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 3 von nobody007
Hallo coros,
vielen Dank für die Hilfe. Bei einem ersten Test hat alles funktioniert.
Gruß Nobody
vielen Dank für die Hilfe. Bei einem ersten Test hat alles funktioniert.
Gruß Nobody
Antwort 4 von nobody007
Hallo coros,
das mit dem blinkenden Datumfeld funktioniert, wie erreiche ich das bei mehreren Datumfeldern in einer Spalte z.B. B1 bis B10, wenn das kommende Datum das aktuelle wird in der Spalte. Ich habe als Vergleich in einer Zelle dieser Spalte das aktuelle Datum mit der Formel =heute()ausgegeben.
Ich habe noch einen anderen Ansatz, den man verfolgen kann, nämlich die Anzahl der Tage des gegenwärtigen Datums von dem des zukünftigen Datums abzuziehen und wenn das Ergebnis gleich Null ist, soll diese Zelle blinken. Die Formel für die Anzahl der Tage bis Null gleich aktuelles Datum habe ich mir zusammengebastelt und lautet:
Tage des kommenden Datums: =((B4-Datum(Jahr(B4);1;0))minus Datum aktuell: (($B$12-Datum(Jahr($B$12);1;0))))/7 in B12 steckt die Formel =heute()in dem absoluten Zellbezug als Datum formatiert.
Die Ergebnisse sind als Standard definiert, um die Tage zu erhalten und kein Datum oder als Bruch wegen geteilt durch 7, um Wochen und Tage zu erhalten. Diese Formel mit ihren Ergebnissen sind in einer anderen Spalte.
Vielleicht ist das mit einer Schleife hin zu bekommen.
Gruß Nobody
Fortsetzung
das mit dem blinkenden Datumfeld funktioniert, wie erreiche ich das bei mehreren Datumfeldern in einer Spalte z.B. B1 bis B10, wenn das kommende Datum das aktuelle wird in der Spalte. Ich habe als Vergleich in einer Zelle dieser Spalte das aktuelle Datum mit der Formel =heute()ausgegeben.
Ich habe noch einen anderen Ansatz, den man verfolgen kann, nämlich die Anzahl der Tage des gegenwärtigen Datums von dem des zukünftigen Datums abzuziehen und wenn das Ergebnis gleich Null ist, soll diese Zelle blinken. Die Formel für die Anzahl der Tage bis Null gleich aktuelles Datum habe ich mir zusammengebastelt und lautet:
Tage des kommenden Datums: =((B4-Datum(Jahr(B4);1;0))minus Datum aktuell: (($B$12-Datum(Jahr($B$12);1;0))))/7 in B12 steckt die Formel =heute()in dem absoluten Zellbezug als Datum formatiert.
Die Ergebnisse sind als Standard definiert, um die Tage zu erhalten und kein Datum oder als Bruch wegen geteilt durch 7, um Wochen und Tage zu erhalten. Diese Formel mit ihren Ergebnissen sind in einer anderen Spalte.
Vielleicht ist das mit einer Schleife hin zu bekommen.
Gruß Nobody
Fortsetzung

