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
Am 03.06.21 um 14:14 schrieb Boris Kirkorowicz:
Hallo,
um das Speicherdatum automatisiert in eine Zelle zu bekommen, habe ich
folgendes Makro (nicht von mir, sondern gefunden gekriegt) in mein
Calc-Dokument eingebaut:
REM ***** BASIC *****
Function ChangedOn() As Date
Dim oSheet As Object
Dim ChgDate As Variant
oSheet = ThisComponent()
ChgDate = oSheet.DocumentProperties.ModificationDate
' ChgDate ist leer, wenn das Dokument noch nie gespeichert wurde. In diesem Fall CreationDate
nutzen
If ChgDate.Year = 0 Then
ChgDate = oSheet.DocumentProperties.CreationDate
End If
ChangedOn = DateSerial(ChgDate.Year, ChgDate.Month, ChgDate.Day)
End Function
Dieses Makro nutze ich, indem ich es in der gewünschten Zelle mit
=CHANGEDON()
aufrufe.
Beim Öffnen des Tabellendokuments begegnet mir die Meldung:
BASIC-Laufzeitfehler.
Eigenschaft oder Methode nicht gefunden: DocumentProperties.
Nach manuellem Aktualisieren mit [Strg]+[Shift]+[F9] ist allerdings das
Speicherdatum in der Zelle korrekt. Für die Funktion scheint es nicht
direkt schädlich zu sein, aber es stört natürlich, wenn man erst einmal
zwei Fenster (die Meldung und das Makro-Fenster) schließen muss, bevor
man arbeiten kann, und es macht keinen guten Eindruck, wenn man die
Tabelle weiterreicht.
Was bedeutet diese Meldung?
Wie lässt sich das abstellen?
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Context
Re: [de-users] Calc: Makro-Laufzeitfehler · Matthias Müller Posteo . de
Re: [de-users] Calc: Makro-Laufzeitfehler · Volker Lenhardt
Re: [de-users] Calc: Makro-Laufzeitfehler · Volker Lenhardt
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.