Excel: Zeit-Informationen des Dokuments anzeigen (2019)

excel-letztes-aendern-speichern-oeffnen-drucken-des-dokuments-vba-resultat

Kurz und knapp: Manchmal möchte man bestimmte Informationen des Excel-Dokuments im Dokument anzeigen. Beispiele:

  • Zeitpunkt der Erstellung
  • Zeitpunkt der letzten Änderung (Änderung einer Zelle, auch ohne Speicherung)
  • Zeitpunkt der letzten Speicherung
  • Zeitpunkt des letzten Drucks (Druckdialog aufrufen, muss nicht gedruckt werden)
  • Autoren, Kommentare, Titel des Dokuments
  • weitere Eigenschaften

Dazu erkunden wir Excel Formeln, teilweise kombiniert mit VBA Workbook_BeforeSave und teilweise das informationsreiche Objekt BuiltinDocumentProperties. Letzteres lässt sich mit VBA auslesen und auch in Zellen schreiben, später mehr dazu.

Zeitpunkt der letzten Änderung

excel-letztes-aendern-speichern-oeffnen-des-dokuments-vba-code-speichern-jetzt

Wir beginnen mal klassisch mit dem Zeitpunkt der letzten Änderung des Dokuments, also jede Form von Zelländerung beispielsweise. Hierfür nutzen wir =NOW() bzw. =JETZT() (englisches oder deutsches Excel) direkt in einer Zelle als Formel. Die „Berechnung“ des aktuellen Zeitpunkts/Zelleninhalts wird bei jeder Veränderung des Dokuments ausgeführt und ist somit immer auf dem Stand der letzten Änderung.

Zeitpunkt der letzten Speicherung (Now() oder BuiltinDocumentProperties)

Ähnlich funktioniert das für den Zeitpunkt der letzten Speicherung. Auch hier benutzen wir NOW() bzw. JETZT(), kombinieren das aber mit etwas VBA-Code. Denn dank Workbook_BeforeSave schreiben wir diesen Zeitwert immer nur zum Zeitpunkt des Speicherns in eine Zelle. Somit steht dort natürlich immer der letzte Speicherzeitpunkt drin. Gleichermaßen liefert das VBA BuiltinDocumentProperties(„Last save time“) dieselbe Information.

Wie funktioniert das mit dem VBA?
Öffnet mit ALT + F11 in Excel den Code-Editor, Doppelklick auf Diese Arbeitsmappe (This Workbook) und fügt dann den Code dort ein.
Ich schreibe mittels Sheets(„ID/Name“).Range(„Zelle“) in eine Zelle. In diesem Beispiel schreib ich also den Zeitpunkt der letzten Speicherung auf unterschiedliche Art und Weise in drei verschiedene Arbeitsblätter.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
  Cancel As Boolean)
    ' Letzter Speicherzeitpunkt mittels Now() oder BuiltinDocumentProperties:
    Sheets("Blatt1").Range("B1").Value = Format(Now(), "dd.mm.yyyy hh:mm")
    Sheets(2).Range("B1").Value = Format(Now(), "dd.mm.yyyy hh:mm")
    Sheets(3).Range("B2").Value = ThisWorkbook.BuiltinDocumentProperties("Last save time")
End Sub
excel-letztes-aendern-speichern-oeffnen-des-dokuments-vba-code-speichern
Einfaches Setup für den Zeitpunkt der letzten Speicherung mittels VBA Workbook_BeforeSave()

Wenn ich den Zeitpunkt der letzten Speicherung in allen Arbeitsblättern des Excel-Dokuments immer an derselben Stelle schreiben möchte, geht das folgendermaßen sehr schön kurz:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
  Cancel As Boolean)
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        With ws
            .Range("B1").Value = ThisWorkbook.BuiltinDocumentProperties("Last save time")
        End With
    Next ws
End Sub

Alle Eigenschaften der BuiltinDocumentProperties

In den BuiltinDocumentProperties steckt natürlich mehr drin als nur die „Last save time“. Ihr könnt euch alle Eigenschaften mit folgendem Code in ein Arbeitsblatt mit dem Namen documentproperties schreiben lassen:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
  Cancel As Boolean)
    On Error Resume Next
    Sheets("documentproperties").Range("A1:B50").ClearContents
    Dim r As Integer
    r = 1
    For Each prop In ThisWorkbook.BuiltinDocumentProperties
        Sheets("documentproperties").Range("A" & r).Value = prop.Name
        Sheets("documentproperties").Range("B" & r).Value = prop.Value
        r = r + 1
    Next
End Sub
excel-letztes-aendern-speichern-oeffnen-des-dokuments-vba-code-speichern-builtindocumentproperties
34 teils hilfreiche Informationen stehen im BuiltinDocumentProperties Objekt
excel-letztes-aendern-speichern-oeffnen-drucken-des-dokuments-vba-resultat
„Das Gelernte anwenden“ nochmal etwas visualisiert 😉

2 Kommentare

Schreibe einen Kommentar