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


Hallo Boris,

ich halte Hans-Werners Vorschlag für besser, das Datum jeweils nur beim Speichern des Dokuments in eine Zelle zu schrieben, anstatt es bei jedem Öffnen neu zu holen. Abgesehen davon dürfte der Fehler (von dem wir ja offenbar noch nicht recht wissen, wodurch er ausgelöst wird) ja dann wohl nicht mehr auftauchen, es ist ja dann eine ganz andere Situation. Der wait-Befehl, den Thomas vorschlug, bedeutet, dass das Programm 1000 Millisekunden warte, bevor es weiterläuft; das macht man, um länger dauernde parallele Prozesse abzuwarten. Daher musstest du nun 1 Sekunde länger warten. In meiner Praxis hat da übrigens immer wait(100) ausgereicht, was man normalerweise nicht mehr bemerkt, die Rechner sind ja jetzt schneller als früher.

Gruß
Gerhard

Am 04.06.2021 um 21:55 schrieb Werner Tietz:
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.