VBA vergangene Tage seit bestimmtem Datum berechnen?
Hallo,
Ich habe in Excel in der Spalte E immer ein Datum im Format "tt.mm.jjjj". Anzahl der Zeilen ist variabel. Ich möchte ein Makro programmieren, welches mir die vergangenen Tage vom Datum bis heute ausrechnet und das Datum in der jeweiligen Zelle mit den berechneten Tagen überschreibt. Wenn größer 10, soll zudem rot markiert werden.
Kann mir jemand helfen? Hab das mit DateDiff probiert. Hat aber nicht hingehauen.
Danke !
2 Antworten
Ich seh noch nicht, wo oder wieso es da ein Makro braucht. Eine simple Formel wie
=heute() - bezug_auf_zelle
(und ein normales Zahlenformat drauf) tut es doch auch? Und ist immer tagesaktuell. Die Farbe macht ein bisschen bedingte Formatierung.
DateDiff ist ja eine Worksheet-Funktion. Wenn du schon ein Makro verwendest, kannst du mit VBA das besser hin bekommen, denn ein Datum entspricht einer Gleitkommazahl mit 1 = 1 Tag.
Pseudocode:
For Each Zelle in Range("E:E")
If IsDate(Zelle.Value) Then
Zelle.Value = CInt(Date() - Zelle.Value)
If Zelle.Value > 10 Then Zelle.Interior.Color = rgb(255,0,0)
End If
Next
Ich greife hier mal Suboptimierer vor, der das sicher auch hinbekommt (Sorry).
Du musst nur die Zelle als Zahl konfigurieren:
Sub DatDiff()
Dim Zelle As Range
For Each Zelle In Range("E1:E100")
If IsDate(Zelle.Value) Then
Zelle.Value = CInt(Date - Zelle.Value)
Zelle.NumberFormat = "0" '###!!!###
If Zelle.Value > 10 Then Zelle.Interior.Color = RGB(255, 0, 0)
End If
Next
Ich habe hier mal den Bereich begrenzt. Das geht auch dynamisch. Frage nach, wenn Du da Hilfe brauchst.
Danke! Ich habe an drei unterschiedlichen Orten Internet und einen Rechner, aber nur an einem von diesen Excel. Deswegen bin ich manchmal auf solche Korrekturen wie von dir angewiesen oder darauf, dass der Fragesteller es durch Probieren hin bekommt.
hi, danke. funktioniert leider nicht. mir Wird jedes Datum auf das Jahr 1900 gesetzt. Wunsch wäre, dass die Differenztage zum Datum angezeigt werden. Eine Idee, wie ich es ändern kann?