Frage von Whyrea, 46

In Excel Modul dauerhaft ausführen lassen bzw. andere Lösungsvorschläge?

Hallo,

ich habe eine Frage zu Excel und einem Modul das ich in VBA hinzugefügt habe. Kurzer Hintergrund der Funktion. Ich möchte in der Lage sein einer Zelle das Datum der letzten Speicherung des Dokuments anzeigen zu lassen. Diese sollte sich immer nach einer erneuten Speicherung aktualisieren.

Nach Recherchen habe ich folgenden Code gefunden:

Function LastSaveDate()
LastSaveDate = Application.ActiveWorkbook.BuiltinDocumentProperties.Item(12)
End Function

Diesen Code habe ich in VBA als Modul eingefügt und in die entsprechende Zelle folgenden Wert : =LastSaveDate()
Dies Funktioniert auch Wunderbar beim ersten eintragen. Jedoch wenn ich Excel schliesse oder eine neue Speicherung vornehme wird dies nicht mehr Aktualisiert. In den Sicherheitseinstellungen von Excel konnte ich keine dinge erkennen die das Stoppen bzw. verhindern des Modules Verursachen könnte. Hat jemand einen Lösungsansatz oder evtl auch ein tipp für ein anderes vorgehen?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Iamiam, Community-Experte für Excel, 36

Probiers mal mit 

Function LastSaveDate()
Application.Volatile 'liefert erst #NAME, nach kurzer Zeit aber richtig.
LastSaveDate = Application.ActiveWorkbook.BuiltinDocumentProperties.Item(12)
End Function


Kommentar von Whyrea ,

hat Funktioniert vielen Dank :)

Kommentar von Iamiam ,

erfreulich, dann hilft man gern! danke für die Rückmeldung!

Kommentar von Whyrea ,

sehr gerne ich habe den Code noch etwas erweitert mit  '& " " & Application.UserName' jetzt ist es genauso wie ich es mir vorgestellt habe!

Kommentar von Iamiam ,

danke für den ★ ! ☺☻

Antwort
von PWolff, 38

Füg im VBA-Modul "DieseArbeitsmappe" Ereignisprozeduren für Workbook_Open, Workbook_BeforeSave und ggf. Workbook_BeforeClose ein.

Kommentar von Whyrea ,

Hallo PWolff. Vielen Dank für den Ratschlag. Leider scheint dies immernoch nicht zu Funktionieren ich habe mal alle 3 eingefügt jedoch weiterhin keine Veränderung des Wertes.

Kommentar von Iamiam ,

ausserdem würde das ja das Datum einer ungespeichert wieder geschlossenen Datei ändern, sinnvoll fände ich das aber, wenn dokumentiert werdenj soll, dass jemand die Datei angeschaut hat (evtl unberechtigt) -oder nicht angeschaut hat, obwohl er sollte (da müsste in beiden Fällen aber das Workbook_open weg, denn das ist ja mein Öffnen der Datei. (es sei denn, man schreibt das in eine wandernde Zelle), adressiert mit Range("A1").end(xldown).offset(1, 0)

Kommentar von PWolff ,

Das Datum der letzten Speicherung soll hier ja nicht geändert werden; lediglich der Inhalt der Zelle, die dies angibt.

Natürlich ist es ggf. auch sinnvoll, festzuhalten, wer wann die Datei geöffnet hat - hierfür muss man natürlich andere Werte abfragen, z. B. den Benutzernamen (über Windows API o. a.)

Kommentar von PWolff ,

Ich dachte, du kennst dich mit Makros so weit aus, dass du weißt, dass in den Ereignishandlern auch etwas getan werden muss.

In diesem Fall z. B. eine Neuberechnung der betreffenden Zelle.

Kommentar von Iamiam ,

sorry, ich bin Autodidakt und habe einen sehr unausgewogenen und unsystematischen Wissensstand, immer noch, auch wenn ich schon sehr lange in Makros aktiv bin.

Kommentar von PWolff ,

Hier hast du was missverstanden - dieser Kommentar bezog sich auf den Kommentar von Whyrea, der/die meinte, dass es auch nach Einfügen der Ereignishandler nicht funktioniert.

Expertenantwort
von Ninombre, Community-Experte für Excel, 42

Wenn es tatsächlich nur um das Datum der letzten Speicherung geht, ist das doch schon in den normalen Dateieigenschaften enthalten und ohne zusätzliche Makros verfügbar.

Kommentar von Whyrea ,

das ist richtig jedoch ist uns dieser umstand zu "kompliziert". Wir machen Tage später bearbeitete Excellisten auf und möchten auf den ersten blick erkennen wann zuletzt das Dokoment angefasst worden ist. Da dies täglich ca 600 listen beinhaltet wollen wir so einfach nur schnell ins dokument rein Datum sehen und wieder raus.

Keine passende Antwort gefunden?

Fragen Sie die Community