Datum abfragen in Excel mit VBA
Schritt-für-Schritt-Anleitung
Um das Erstellungsdatum einer Excel-Datei abzufragen und mit dem Systemdatum zu vergleichen, kannst Du das folgende VBA-Makro verwenden:
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
' Vergleich des Datums
If Int(saveDate) = Date Then
MsgBox "Alles ok!"
Else
MsgBox "Das Datum stimmt nicht überein!"
End If
End Sub
In diesem Beispiel wird das Erstellungsdatum der Datei mit dem aktuellen Systemdatum verglichen. Beachte, dass die Uhrzeit von saveDate entfernt wird, da Excel Datumswerte als Ganzzahlen speichert und Uhrzeiten als Nachkommastellen.
Häufige Fehler und Lösungen
-
Fehler: "Typenkonflikt"
- Dieser Fehler tritt auf, wenn Du versuchst,
Date$ anstelle von Date zu verwenden. Das Dollarzeichen gibt einen Textstring zurück, während Date einen numerischen Wert liefert. Verwende einfach Date.
-
Fehler: "Datum stimmt nicht überein"
- Wenn der Vergleich nicht funktioniert, stelle sicher, dass Du die Nachkommastellen von
saveDate entfernst, indem Du Int(saveDate) verwendest, wie im Schritt-für-Schritt-Beispiel gezeigt.
-
Fehler: Ungültiger Dateipfad
- Überprüfe, ob der Pfad zur Excel-Datei korrekt ist. Stelle sicher, dass die Datei existiert und Du die richtigen Berechtigungen hast.
Alternative Methoden
Eine alternative Methode, um das Datum abzufragen, könnte die Verwendung von Workbook.BuiltinDocumentProperties sein:
Sub GetCreationDate()
Dim creationDate As Date
creationDate = ThisWorkbook.BuiltinDocumentProperties("Creation Date")
If Int(creationDate) = Date Then
MsgBox "Die Datei wurde heute erstellt."
Else
MsgBox "Die Datei wurde nicht heute erstellt."
End If
End Sub
Diese Methode ist einfacher, wenn Du nur das Erstellungsdatum benötigst, ohne auf das Dateisystem zugreifen zu müssen.
Praktische Beispiele
-
Beispiel 1: Überprüfung des Dateidatums
Wenn Du eine Excel-Datei hast und sicherstellen möchtest, dass sie am aktuellen Tag gespeichert wurde, kannst Du das Makro aus der Schritt-für-Schritt-Anleitung verwenden.
-
Beispiel 2: Automatisierte Warnung
Du könntest die MsgBox auch ändern, um eine automatisierte Warnung zu senden, wenn das Dokument nicht am aktuellen Datum gespeichert wurde. Dies kann nützlich sein, um sicherzustellen, dass Deine Dokumente regelmäßig aktualisiert werden.
Tipps für Profis
-
Nutze Debug.Print, um den Wert von saveDate während der Ausführung des Makros zu überprüfen. Das hilft Dir, Probleme schneller zu identifizieren.
-
Verwende das Format-Funktion, um Datum und Uhrzeit in einem bestimmten Format anzuzeigen, falls Du die Ausgabe für den Benutzer anpassen möchtest.
-
Achte darauf, dass Du immer die aktuellsten Versionen von Excel und VBA verwendest, um Kompatibilitätsprobleme zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich die Erstellungsdaten von verschiedenen Excel-Dateien abfragen?
Du kannst das Makro anpassen, um eine Schleife zu verwenden, die durch ein Verzeichnis von Excel-Dateien iteriert.
2. Was ist der Unterschied zwischen Date und Date$?
Date gibt einen numerischen Wert zurück, während Date$ einen Textstring zurückgibt. Verwende Date, um Typenkonflikte zu vermeiden.
3. Funktioniert dieses Makro in allen Excel-Versionen?
Ja, das Makro sollte in den meisten Versionen von Excel funktionieren, die VBA unterstützen. Achte darauf, dass Du die entsprechenden Berechtigungen hast.