PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Excel Datum letzte Aktualisierung in Zelle schreiben?


Infosucher
2019-09-10, 09:45:41
Moin zusammen,

ich habe mir eine Exceldatei mit VBA Inhalt gebastelt. Ich möchte nun, dass in der Zelle D6 (Zelle ist breiter und wurde mit Reihe E und F zusammengefügt) immer das Datum und die Uhrzeit der letzten Speicherung steht.

Dafür habe ich folgendes im VBA Editor in einem neu erstellen Modul eingegeben:

Public Function ModDate()
ModDate = Format(FileDateTime(ThisWorkbook.FullName), "dd/mm/yyyy hh:nn")
End Function

Dann muss ich in die Zelle D6 noch =ModDate() schreiben und es geht soweit.

Aber es gibt ein Problem, nämlich die automatische Aktualisierung der Zelle nach dem Speichern! Wenn ich speichere, passiert erstmal nichts. Ich muss erst doppelt in die Zelle klicken und anschließend mit Enter bestätigen. Erst dann aktualisiert sich die Zeit...

Wie bekomme ich es hin, dass die Zeit und das Datum sofort nach dem Speichern dort aktuell in der Zelle D6 automatisch drin stehen?

Danke Euch.

P.S. Es hat übrigens nichts mit der automatischen Aktualisierung der Zellen zu tun. Diese ist in den Optionen aktiv!

Screemer
2019-09-10, 09:59:36
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If Success Then
ModDate
End If
End Sub

Dazu evtl. noch ein Script das die Zelle direkt aktualisiert, wenn =ModDate den neuen Wert nicht automatisch übernimmt.

Simlog
2019-09-10, 10:08:23
Hmm, ganz plump wäre einfach die "Enter" Eingabe via VBA zu simulieren. Wie lautet denn das ganze "Speicher Skript" müsste ja irgendwie ein Event workbook.beforesave(...) oder sowas sein, wenn ich mich recht entsinne.

Edit: ah ok, du hast es eben angefügt, mal sehen...

Funktioniert bei mir auch nicht. Das Event feuert gar nicht erst, scheint aber ein sehr populäres Problem zu sein...Kann dir im Moment nicht weiterhelfen. Ansonsten passt der Code bei mir. Irgendwie speichert man aber auch immer nur die Mappe und nicht das Workbook? :confused:

Screemer
2019-09-10, 10:09:46
Beforesave würde imho das alte ModDate auslesen. Gibt aber ja noch Aftersave.

Simlog
2019-09-10, 10:26:30
Beforesave würde imho das alte ModDate auslesen. Gibt aber ja noch Aftersave.

Ja, das stimmt das macht keinen Sinn, aber du könntest dann einfach date eintragen, weil du speicherst dann ja.

Allerdings ist das Problem bei mir, dass weder After noch BeforeSave feuert.

Infosucher
2019-09-10, 10:41:19
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If Success Then
ModDate
End If
End Sub

Dazu evtl. noch ein Script das die Zelle direkt aktualisiert, wenn =ModDate den neuen Wert nicht automatisch übernimmt.

Vielen Dank, aber damit bekomme ich es auch nicht hin. Irgendwie weiß ich da nicht mehr weiter.

Gruß
Infosucher

][immy
2019-09-10, 12:43:25
Beforesave würde imho das alte ModDate auslesen. Gibt aber ja noch Aftersave.
Ist nicht das eigentlich Problem, das Aftersave auch gefeuert werden würde, wenn man nach der Modifizierung erneut speichert und somit das Datum nicht mehr korrekt ist?.

Also wenn dann Before save und das aktuelle Datum eintragen, alles andere würde ja erfordern das man erneut speichert und damit das Mod-Datum wieder setzen (klingt ein wenig nach Endlosschleife).