Wenn Sie sich die in einer Arbeitsmappe gespeicherten Eigenschaften ansehen, werden Sie feststellen, dass Excel einige Informationen zur Datei enthält. Eines der Elemente ist ein Datum und eine Uhrzeit, die einfach als „Geändert“ gekennzeichnet sind. Viele Leute bezeichnen dies als „Datum der letzten Änderung“, aber es spiegelt wirklich das letzte Mal wider, als die Arbeitsmappe gespeichert wurde.

Wenn Sie dieses Datum in Ihrer Arbeitsmappe verwenden möchten (möglicherweise in einer Kopf- oder Fußzeile), können Sie dies mithilfe der BuiltinDocumentProperties-Eigenschaft tun (die fast überflüssig klingt). Das folgende Makro fügt der Kopfzeile Ihres Dokuments das richtige Datum hinzu:

Sub MyHeader1()

Dim sLMD As String

On Error Resume Next

sLMD = ActiveWorkbook.BuiltinDocumentProperties("Last Save Time")

If Err = 440 Then         Err = 0         sLMD = "Not Set"

End If     sLMD = Left(sLMD, 8)

ActiveSheet.PageSetup.LeftHeader = "Last Saved: " & sLMD End Sub

In diesem Makro sind einige Elemente zu beachten. Zunächst wird versucht, das letzte Datum zu ermitteln, an dem die Arbeitsmappe gespeichert wurde. Wenn diese Informationen nicht ermittelt werden können, wird der Header auf „Nicht festgelegt“ gesetzt.

Beachten Sie, dass in diesem Makro eine Fehlerbehandlung durchgeführt wurde. Der Grund dafür ist, dass Excel einen Fehler zurückgibt, wenn eine bestimmte Dokumenteigenschaft (in diesem Fall BuiltinDocumentProperties) nicht festgelegt ist. Der Fehler muss abgefangen und behandelt werden, was hier gemacht wird.

Hier ist noch ein weiterer Punkt zu beachten. In einigen Versionen von Excel beträgt der Err-Wert, der zurückgegeben wird, wenn die Eigenschaft nicht festgelegt ist, nicht wirklich 440 (wie hier gezeigt), sondern eine andere ungerade Zahl, z. B. -2147467259. Das ist in der Tat sehr bizarr. Warum der 440-Wert (der der richtige Fehlercode ist)

würde unter einem Umstand und nicht unter einem anderen zurückgegeben werden, ich weiß es nicht.

(Vielleicht kennt ein anderer Excel-Guru die Antwort.) Wenn Sie dieses Problem haben, können Sie zwei Ansätze wählen. Zunächst können Sie den Wert 440 durch den anderen Wert (-2147467259) ersetzen. Die zweite Option, sofern Sie die Arbeitsmappe bereits mindestens einmal gespeichert haben, besteht darin, ein anderes Makro zu verwenden. Im Folgenden wird das Attribut „Zuletzt geändert“ aus der Datei selbst gelesen und diese Informationen im Header gespeichert:

Sub MyHeader2()

Dim fs As Variant     Dim f As Variant     Dim sLMD As String

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.GetFile(ActiveWorkbook.Path & "\" & _       ActiveWorkbook.Name)

sLMD = Left(f.DateLastModified, 8)

ActiveSheet.PageSetup.LeftHeader = "Last Modified: " & sLMD End Sub

Unabhängig davon, welches Makro Sie verwenden, denken Sie daran, dass das Makro nach der Ausführung den linken Header auf die gewünschten Informationen setzt. Diese Informationen werden erst wieder geändert, wenn Sie das Makro erneut ausführen. Wenn Sie also immer ein aktuelles Datum in der Kopfzeile haben möchten, sollten Sie das Makro entweder regelmäßig (möglicherweise direkt vor dem Drucken) ausführen oder so einrichten, dass es beim Öffnen Ihres Dokuments ausgeführt wird.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (7764) gilt für Microsoft Excel 2007, 2010 und 2013. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: