Date: prev next · Thread: first prev next last
2021 Archives by date, by thread · List index


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


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.