VBA vergangene Tage seit bestimmtem Datum berechnen?

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
Woher ich das weiß:Berufserfahrung – Programmierer
bla10000 
Fragesteller
 02.03.2018, 14:51

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? 

0
Oubyi, UserMod Light  03.03.2018, 14:02
@bla10000

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.

1
Suboptimierer  03.03.2018, 18:16
@Oubyi, UserMod Light

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.

1