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 ChgDateChangedOn = 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 FunctionDieses 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