Hallo Boris,
für den Fall, dass du immer noch Schwierigkeiten mit dem Sicherheitszertifikat hast, kann ich dir eine nicht wirklich elegante, aber m.E. funktionierende Lösung auch mit hoher Makrosicherheit vorstellen.
1. Du löscht alle Makros in der Standard-Bibliothek des Dokuments, am besten durch Löschung der existierenden Module.
2. Du verwendest, wie von Werner Tietz vorgeschlagen, die Error-Behandlung, gespeichert in Meine Makros & Dialoge/Standard:
Function ChangedOn() As Date
Dim oDoc
Dim ChgDate
On Error Resume Next
oDoc = ThisComponent
ChgDate = oDoc.DocumentProperties.ModificationDate
'ChgDate ist leer, wenn das Dokument noch nie gespeichert wurde. In diesem Fall CreationDate nutzen
If ChgDate.Year = 0 Then
ChgDate = oDoc.DocumentProperties.CreationDate
End If
ChangedOn = DateSerial(ChgDate.Year, ChgDate.Month, ChgDate.Day)
End Function
3. Du erstellst ein Makro zur Neuberechnung aller Tabellen und speicherst es genau wie "ChangedOn" in Meine Makros ...:
Sub CalculateAll()
ThisComponent.calculateAll()
End Sub
4. Du öffnest die Datei und verknüpfst über Extras/Anpassen/Ereignisse - Achtung: in der Zeile unter der Liste die Datei auswählen, nicht LibreOffice! - die Ereignisse "Ansicht wurde erzeugt" sowie "Dokument wurde gespeichert" jeweils mit dem Makro CalculateAll.
Wenn du die Datei öffnest, wird ChangedOn entweder leer sein oder aus einer anderen geöffneten Datei stammen. Es wird aber kein Fehler angezeigt. Wenn aber einen Augenblick später die Ansicht erzeugt ist, wird ThisComponent dann endlich diese Datei referenzieren, und alles wird sofort neu berechnet, woraufhin ChangedOn den korrekten Wert erhält. Den zwischenzeitlich falschen Wert wirst du nicht bemerken. Außerdem wird ChangedOn auch nach jedem Speichern aktualisiert.
Probier es einmal aus. Bei mir funktioniert es.
Schöne Grüße
Volker