Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datum auslesen

Datum auslesen
Horst
Hallo Excel-Freunde,
wie kann ich per VBA das Erstellungsdatum einer anderen .xls anzeigen lassen?
Stell' mir das so vor, dass in der Prozedur der Speicherort der .xls angegeben und dann einer MsgBox ausgegeben wird, wann die Datei gespeichert wurde. Sollte das Speicherdatum nicht dem Systemdatum entsprechen, sollte der Text rot sein.
Besten Dank vorab!
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datum auslesen
05.08.2009 21:50:48
Hajo_ZI
Hallo Horst,
das Erstellungsdatum kann ein anderes sein als das Speicherdatum.
Was möchtest Du jetzt?

AW: Datum auslesen
05.08.2009 22:08:41
Horst
Das Makro soll das Speicherdatum anzeigen. Für den Fall, dass Systemdatum ungleich Speicherdatum soll die Schrift rot sein.
Anzeige
AW: Datum auslesen
05.08.2009 22:21:41
Hajo_ZI
Hallo Horst,
FileDateTime(LaufwerkV & "Laser Muster.xls")
Gruß Hajo
?datevalue(filedatetime("C:\Ordner\Datei.xls"))
05.08.2009 22:30:01
NoNet
Hallo Horst,
mit filedatetime("C:\Ordner\Datei.xls") erhältst Du das exakte Speicherdatum+Uhrzeit einer Datei.
Falls Du nur das Datum (ohne Uhrzeit) benötigst, dann verwende folgende Anweisung :
MsgBox datevalue(filedatetime("C:\Ordner\Datei.xls"))
Um die Schriftfarbe zu ändern, kannst Du diese Anweisung in eine IF-Struktur verwenden :

If datevalue(filedatetime("C:\Ordner\Datei.xls"))date then
[A1].font.colorindex=3 'rot
else
[A1].font.colorindex=0
End IF
Gruß, NoNet
Anzeige
AW: Datum auslesen
05.08.2009 22:25:36
Josef
Hallo Horst,
Formatierung geht bei MsgBox nicht.
Sub checkDate()
  Dim strFile As String
  Dim objFSO As Object, objF As Object
  Dim saveDate As Date
  
  strFile = Application.GetOpenFilename("Excel Dateien (*.xls; *.xlsx; *.xlsm)," & _
    "*.xls; *.xlsx; *.xlsm")
  
  If strFile = "Falsch" Then Exit Sub
  
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  
  Set objF = objFSO.GetFile(strFile)
  
  saveDate = objF.DateLastModified
  
  MsgBox "Die Datei > " & strFile & " <" & vbLf & "wurde zuletzt am " & _
    Format(saveDate, "dd.MM.yyyy") & " gespeichert"
  
  Set objF = Nothing
  Set objFSO = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Datum auslesen
05.08.2009 23:23:59
Horst
besten dank!!
;
Anzeige
Anzeige

Infobox / Tutorial

Datum auslesen in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um das Speicherdatum einer Excel-Datei mit VBA auszulesen und in einer MsgBox anzuzeigen, kannst Du die folgenden Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden VBA-Code ein:

    Sub checkDate()
        Dim strFile As String
        Dim objFSO As Object, objF As Object
        Dim saveDate As Date
    
        strFile = Application.GetOpenFilename("Excel Dateien (*.xls; *.xlsx; *.xlsm), *.xls; *.xlsx; *.xlsm")
    
        If strFile = "Falsch" Then Exit Sub
    
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objF = objFSO.GetFile(strFile)
    
        saveDate = objF.DateLastModified
    
        MsgBox "Die Datei > " & strFile & " < wurde zuletzt am " & Format(saveDate, "dd.MM.yyyy") & " gespeichert"
    
        Set objF = Nothing
        Set objFSO = Nothing
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um das Speicherdatum der ausgewählten Datei anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: "Falsch" wird als Rückgabewert angezeigt.

    • Lösung: Stelle sicher, dass Du eine Datei auswählst, wenn das Dialogfeld erscheint. Wenn Du das Dialogfeld schließt, ohne eine Auswahl zu treffen, wird "Falsch" zurückgegeben.
  • Fehler: MsgBox zeigt kein Datum an.

    • Lösung: Überprüfe, ob der Pfad zur Datei korrekt ist und ob die Datei existiert.

Alternative Methoden

Eine andere Möglichkeit, das Speicherdatum einer Datei zu ermitteln, ist die Verwendung der Funktion FileDateTime. Du kannst den folgenden Code verwenden:

Dim speicherdatum As String
speicherdatum = FileDateTime("C:\Ordner\DeineDatei.xls")
MsgBox "Das Speicherdatum ist: " & speicherdatum

Diese Methode ist einfacher, wenn Du nur das Speicherdatum ohne zusätzliche Logik benötigst.


Praktische Beispiele

Hier sind zwei praktische Beispiele für die Verwendung des Speicherdatums:

  1. Einfacher Code zur Anzeige des Speicherdatums:

    MsgBox "Das Speicherdatum ist: " & FileDateTime("C:\Ordner\DeineDatei.xls")
  2. Code zur farblichen Darstellung des Datums:

    If DateValue(FileDateTime("C:\Ordner\DeineDatei.xls")) <> Date Then
        Range("A1").Font.ColorIndex = 3 'rot
    Else
        Range("A1").Font.ColorIndex = 0 'schwarz
    End If

Tipps für Profis

  • Nutze die Scripting.FileSystemObject-Klasse, um erweiterte Dateiinformationen zu erhalten, wie z.B. Erstellungsdatum oder Zugriffsdatum.
  • Füge Fehlerbehandlungsroutinen hinzu, um die Robustheit Deines Codes zu erhöhen.
  • Speichere Deine Makros in einer Datei mit der Endung .xlsm, um sicherzustellen, dass der VBA-Code erhalten bleibt.

FAQ: Häufige Fragen

1. Kann ich das Erstellungsdatum anstelle des Speicherdatums abrufen?
Ja, Du kannst die CreationDate-Eigenschaft des FileSystemObject verwenden, um das Erstellungsdatum zu erhalten.

2. Ist es möglich, das Datum in einem bestimmten Format anzuzeigen?
Ja, Du kannst die Format-Funktion in VBA verwenden, um das Datum in Deinem gewünschten Format darzustellen, z.B. Format(saveDate, "dd.MM.yyyy").

3. Funktioniert das auch in Excel 365?
Ja, der bereitgestellte VBA-Code funktioniert in Excel 365 sowie in anderen Versionen von Excel, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige