Ein Fall für VBA
04.02.2021, 07:00 Uhr
Excel: Erstell- und Speicherdatum der Datei in der gewünschten Zelle anzeigen
Sie würden gerne in Excel in je einer Zelle das ursprüngliche Erstelldatum und das letzte Speicherdatum Ihrer Arbeitsmappe anzeigen. Hier können nur zwei kleine Makros helfen. Aber das ist recht einfach.
Eine Formel- oder Feldfunktion wie in Word gibts in Excel leider nicht fürs Einfügen des Erstell- oder Änderungsdatums. Mit zwei kleinen VBA-Makros gehts aber doch.
(Quelle: PCtipp.ch)
In Ihrer Excel-Tabelle würden Sie z.B. in Zelle D1 gerne das ursprüngliche Erstelldatum Ihrer Excel-Datei anzeigen. Und in H1 das letzte Speicherdatum, je nach Geschmack mit oder ohne Zeitangabe. Excel stellt hierfür leider keine einfache Formelfunktion bereit. Aber mit zwei kleinen VBA-Makros ist es ein Klacks.
Lösung: Öffnen Sie mit Alt+F11 den Visual-Basic-Editor. Doppelklicken Sie in der linken Spalte auf DieseArbeitsmappe.
Nur das Datum
Das erste Makro fügt das letzte Speicherdatum in die Zelle H1 ein. Ausserdem erscheint in Zelle D1 das Erstelldatum. Ändern Sie im Code die gewünschten Zielzellen, wenn die Erstell- bzw. Speicherdaten in einer anderen Zelle stehen sollen:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveSheet.Range("H1") = "Gespeichert: " & Format(Now, "dd.mm.yyyy")
End Sub
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If Not Success Then ActiveSheet.Range("H1") = "Nicht gespeichert"
ActiveSheet.Range("D1") = "Erstellt: " & Format(DieseArbeitsmappe.BuiltinDocumentProperties.Item("Creation date"), "dd.mm.yyyy")
End Sub
Datum inkl. Uhrzeit
Soll es nicht nur das Datum, sondern auch die Uhrzeit sein, greifen Sie zu den folgenden Varianten des Makros. Dies schreibt das Datum und die Uhrzeit der letzten Speicherung in die Zelle H1 und das Erstelldatum in D1 (auch diese allenfalls anpassen):
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveSheet.Range("H1") = "Gespeichert: " & Now
End Sub
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If Not Success Then ActiveSheet.Range("H1") = "Nicht gespeichert"
ActiveSheet.Range("D1") = "Erstellt: " & DieseArbeitsmappe.BuiltinDocumentProperties.Item("Creation date")
End Sub
Wichtig: Nach dem Einfügen des Codes wird Excel Sie darauf aufmerksam machen, dass Sie die Datei nicht als gewöhnliche .xlsx-Datei speichern dürfen, sondern als .xlsm-Datei, in der Makros erlaubt sind: eine Excel-Arbeitsmappe mit Makros. Klicken Sie daher auf Speichern unter, navigieren Sie zum gewünschten Ordner und greifen Sie bei «Dateityp» zu Excel-Arbeitsmappe mit Makros (*.xlsm). Arbeiten Sie in Zukunft mit dieser neuen Mappe, in der die beiden Makros stecken.
Zurück im Code-Fenster klicken Sie auf Datei/Schliessen und zurück zu Excel. Speichern Sie die Datei, erscheinen die beiden Kalenderdaten mit oder ohne Zeitangabe in den angegebenen Zellen – je nachdem, welche Makrovariante Sie verwendet haben.
Hinweise: Die Makros werden jeweils beim Speichern der Datei automatisch ausgeführt. Hat Ihre Arbeitsmappe mehrere Blätter? In diesem Fall beachten Sie Folgendes: Die Datumseinträge erscheinen in den genannten Zellen (D1 und H1) zudem in jedem Tabellenblatt Ihrer Arbeitsmappe, sofern es das beim Speichern aktive Blatt ist. Das heisst beispielsweise: Wenn Sie in Tabelle3 sind, während Sie auf Speichern klicken, erscheinen Erstell- und Speicherdatum in deren Zellen D1 und H1. Befinden Sie sich stattdessen in Tabelle1, erscheinen die Daten beim Speichern in diesem. (PCtipp-Forum)
(Update 12.02.2021 mit Korrekturen und abschliessenden Hinweisen)
11.02.2021
12.02.2021