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


Hallo

Am 04.06.21 um 09:52 schrieb Boris Kirkorowicz:
Hallo,

Am 03.06.21 um 16:24 schrieb Thomas Krumbein:
Hei Boris,

bau mal ne wait() Funktion ins Makro ein. Benutzerdefinierte Funktionen
werden sehr früh aufgelöst, kann sein, dass manche Dokumentobjekte zu
dem Zeitpunkt noch nicht verfügbar sind.

Ich würde mal mit   wait(1000)  nach der Zeile    oSheet =
ThisComponent()  beginnen und austesten, evt. dann den Wert reduzieren.
Danke, habe ich gemacht.
Leider ohne Erfolg: die Fehlermeldung erscheint weiterhin, und das Datum
wird wie bisher zunächst auf den 31.12.1899 gesetzt und erst nach
[Strg]+[Shift]+[F9] auf das letzte Speicherdatum. Neu ist jetzt, dass
nach dem Drücken der Tastenkombination für die unbedingte Neuberechnung
etwa eine Sekunde vergeht, bis auf das Speicherdatum gewechselt wird.

Das pauschale `wait(…)` ist keine gute Idee, wie wärs mit:

```

Function ChangedOn() As Variant

     Dim oSheet As Object
     Dim ChgDate As Object

     On Error resume Next 'hier wird die Fehlermeldung abgefangen.

     doc = ThisComponent()

     ChgDate = doc.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
     With ChgDate
         ChangedOn = dateSerial( .Year, .Month, .Day) + TimeSerial( .Hours, .Minutes, .Seconds)
     End With

End Function

```

trotzdem musst du ggf. die Neuberechnung nach dem Öffnen mit `strg+shift+enter` erzwingen.

nb: ich hab das noch ergänzt auf die Anzeige des vollen Datum-Zeitstempels, passe daher das Zellformat entsprechend an.



Am 03.06.2021 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.