Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Datumsdifferenz mit VBA

Betrifft: Datumsdifferenz mit VBA von: Tom
Geschrieben am: 18.08.2008 16:27:09

So, bevor es dann in den Feierabend geht, plagt mich noch eine Frage.
Ich hatte das selbe mal per Formel gemacht, aber die wurde durch die Wenn-Aber-Regel Ellenlang, da ich immer mit der Null-Problematik und leeren Zellen zu kämpfen hatte.
Also solls jetzt mittels VBA sein.

In der Spalte H steht ein Datum

Dieses möchte ich mit dem HEUTIGEN Datum vergleichen und die Differenz ausgeben....in Tagen
Natürlich nur berechnen, wenn in der Spalte H überhaupt ein Datum steht.

Vielen Dank schon mal im Voraus für die Hilfe

Der Tom

  

Betrifft: AW: Datumsdifferenz mit VBA von: Erich G.
Geschrieben am: 18.08.2008 16:38:04

Hallo Tom,
probier mal

   Dim lngTage As Long
   
   If IsDate(Cells(2, 8)) Then lngTage = Date - Cells(2, 8)

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Datumsdifferenz mit VBA von: Tino
Geschrieben am: 18.08.2008 16:44:26

Hallo,
mit VBA

If IsDate(Range("H1")) Then
MsgBox [=DATEDIF(H1,TODAY(),"d")]
End If



Mit Formel

 HI
101.09.200814

Formeln der Tabelle
ZelleFormel
I1=WENN(H1>0; DATEDIF(HEUTE(); H1;"d"); "")



Gruß Tino


  

Betrifft: AW: Datumsdifferenz mit VBA von: Tom
Geschrieben am: 19.08.2008 08:34:17

Auch wenn ich glaube, dass man an diesem Script noch ne menge verbessern kann....
es funktioniert aber.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("H")) Is Nothing And Target.Count = 1 Then
If IsDate(Range("H4")) Then
Range("I4:I50") = "=IF(RC[-1]>0, DATEDIF(TODAY(), RC[-1],""d""), """")"
End If
End If
End Sub



Von I4 bis I50 werden die Tage berechnet, wenn in H ein Datum steht....

@Tino: Dein Vorschlag ging so nicht, da VBA die Variante mit der Messagebox so nicht möchte.

Der Tom


  

Betrifft: AW: Datumsdifferenz mit VBA von: Tino
Geschrieben am: 19.08.2008 09:01:38

Hallo,
bei mir funktioniert es mit der Box, es kommt darauf an welches Datum größer ist.

'H1 muss >= heute() sein
MsgBox [=DATEDIF(TODAY(),H1,"d")]

'H1 muss <= heute() sein
MsgBox [=DATEDIF(H1,TODAY(),"d")]

Gruß Tino


  

Betrifft: AW: Datumsdifferenz ohne VBA von: Erich G.
Geschrieben am: 19.08.2008 09:16:55

Hallo Tom,
muss es an dieser Stelle wirklich VBA sein? Eine einfache Formel dürfte doch reichen.
(Ich halte die Formel in Spalte J für einfacher als die mit DATEDIF.):

 HIJ
1DatumTage1Tage2
23333363466346
309.08.20081010
4xyz#WERT! 

Formeln der Tabelle
ZelleFormel
I2=WENN(H2>0; DATEDIF(H2;HEUTE(); "d"); "")
J2=WENN(ISTZAHL(H2); HEUTE()-H2;"")

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


 

Beiträge aus den Excel-Beispielen zum Thema "Datumsdifferenz mit VBA"