Microsoft Excel

Herbers Excel/VBA-Archiv

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

Datum abfragen | Herbers Excel-Forum


Betrifft: Datum abfragen von: Horst
Geschrieben am: 25.11.2009 20:43:46

Hallo Excel-Freunde,

bei untenstehendem Makro wird das Erstellungsdatum einer .xls ausgelesen. Wenn dies nun dem Systemdatum entspricht soll eine MsgBox ausgegeben werden, sonst nicht. Irgendwie hinkt's an der Zeile
"If saveDate = Date$ Then" ... wie frage ich das Systemdatum korrekt ab?

Besten Dank vorab!

Sub Project()

Dim olapp As Object
Dim mybox As String
Dim objFSO As Object, objF As Object
Dim saveDate As Date

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objF = objFSO.GetFile("C:\test.xls")

saveDate = objF.DateLastModified
 
Set objF = Nothing
Set objFSO = Nothing

If saveDate = Date$ Then

MsgBox "Alles ok!"

Else

End If

End Sub

  

Betrifft: AW: Datum abfragen von: chris b.
Geschrieben am: 25.11.2009 20:55:02

Hallo,
versuchs mal so.
Sollte gehen.

Sub Project()

Dim olapp As Object
Dim mybox As String
Dim objFSO As Object, objF As Object
Dim saveDate As Date

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objF = objFSO.GetFile(ThisWorkbook.FullName)

saveDate = objF.DateLastModified
 
Set objF = Nothing
Set objFSO = Nothing

If Format(CDate(saveDate), "dd.mm.YYYY") = CDate(Date) Then

MsgBox "Alles ok!"

Else

End If

End Sub



  

Betrifft: AW: Datum abfragen von: Horst
Geschrieben am: 25.11.2009 21:54:21

geht leider nicht. Bei Format(CDate(saveDate), "dd.mm.YYYY") = CDate(Date) tut sich genauso wenig wie bei saveDate=Date. Hat noch wer eine Idee dazu?


  

Betrifft: AW: Date$ ??? von: Daniel
Geschrieben am: 25.11.2009 20:56:09

wo kommt das Dollarzeichen her, ich kenne nur die Funktion DATE, aber nicht Date$
Gruß, Daniel


  

Betrifft: AW: Date$ ??? von: Horst
Geschrieben am: 25.11.2009 21:49:10

das Date$ hab' ich aus der Hilfe, scheint Date ziemlich ähnlich zu sein.


  

Betrifft: AW: Date$ ??? von: Daniel
Geschrieben am: 25.11.2009 22:00:36

hi
nein, ist eigentlich ziemlich unähnlich.
Date gibt einen Zahlenwert zurück, Date$ einen Textstring.

welche Variante du verwenden musst, hängt davon ab, welchen Datentyp dein Vergleichswert hat (bzw der Datentyp DATE ist ein numerischer Typ), da man Texte mit Zahlen nicht vergleichen kann.

auch wäre ich vorsichtig mit Date$, da du hier die Darstellungsform nicht beeinflussen kannst (dh Tag-Monat-Jahr oder Monat-Tag-Jahr).
Besser ist hier die Funktion FORMAT(DATE, "DD.MM.YYYY"), mit der du das einstellen kannst

gruß, Daniel


  

Betrifft: AW: Date$ ??? von: Horst
Geschrieben am: 25.11.2009 22:18:48

danke fpr die Info, aber auch mit Format(Date, ...) klappt's nicht. Sonstige Vorschläge?


  

Betrifft: Date von: Matthias L
Geschrieben am: 25.11.2009 22:22:07

Hallo

If Format(saveDate, "DD-MM-YYYY") = Format(Date, "DD-MM-YYYY") Then

Bei mir klappts.

Gruß Matthias


  

Betrifft: AW: Ganzzahl vs Dezimalzahl von: Daniel
Geschrieben am: 25.11.2009 22:34:23

Hi

grundsätzlich würde ich schon mit SaveDate und Date arbeiten ohne das ganze über Format() oder Date$ in Text zu wandeln.

das Problem an der Sache ist, daß SaveDate Datum und Uhrzeit beinhaltet und Date nur ein Datum ist.
wenn man sich ein bisschen mit dem Exceldatum auskennt, dann weiß man:

Datum = Ganzzahl, Uhrzeit = Nachkommastellen

dh. damit das ganze funktioniert, musst du für den Vergleich von SaveDate und Date die Uhrzeit - dh. die Nachkommastellen - aus SaveDate entfernen:

 If Int(saveDate) = Date Then

Gruß, Daniel


Beiträge aus den Excel-Beispielen zum Thema "Datum abfragen"