Frage stellen
0

Gibt es eine Möglichkeit eine bestimmte Zelle bzw das ganze Dokument zeitabhängig automatisch neu zu berechnen ohne F9?

gefragt 2019-12-30 01:20:58 +0200

Forsaken Gravatar-Bild

updated 2019-12-30 02:04:28 +0200

Hallo alle zusammen, ich beschäftige mich nun seit ein paar Tagen damit mir einen Terminplan in LibreOffice Calc zu erstellen. Was das eintragen mit Zeiten und allem angeht läuft das echt gut. Zudem habe ich neben den jeweiligen Zeiten zu denen ich Termine eintrage eine Countdownfunktion eingefügt. Jetzt das Problem wenn ich mir das ganze auf einem zweiten Bildschirm anzeigen lassen will tickt der Countdown nur, wenn ich wieder in das Dokument tabbe und F9 drücke. Ist es irgendwie möglich, dass das Dokument sich solange es geöffnet ist alle zB 10 sec selbst aktualisiert (zB über eine Schaltfläche die dauerhafte Aktualisierung aktiviert oder ähnliches)?

Ich wäre dankbar für jede Hilfe auch wenn das nur ein reines Komfortproblem ist.

Bearbeiten Tags ändern Melden schließen vereinen löschen

Kommentare

Mit "bestimmte Zelle" geht das nicht, jedenfalls nicht wörtlich, weil die Berechnung einer Zelle immer auch die Berechnung aller "dirty" markierten Zellen einschließt, von denen die jeweilige Formel irgendwie (Umwege möglich!) abhängt. Formeln, die volatile Funktionen verwenden, werden ohnehin bei jedem Änderungsereignis aufgefrischt. F9 berechnet aber nicht immer alles neu, sondern im Sinne obiger Erklärung die (im technischen Sinne) sichtbaren Zellen. Eine vollständige Neuberechnung kann man mitr Ctrl+Shift+F9 erzwingen.

Lupp Gravatar-BildLupp ( 2019-12-30 13:33:31 +0200 )Bearbeiten

3 Antworten

1

geantwortet 2019-12-30 12:04:23 +0200

Opaque Gravatar-Bild

updated 2019-12-30 13:04:24 +0200

Hallo,

ja - es gäbe einen Trick, der allerdings von hinten durch die Brust ins Auge geht. Die Idee wäre, den vorhandenen Timer zum Aktualisieren der Verknüpfung zu externen Daten zu missbrauchen und dadurch eine Neuberechnung zu triggern.

Festlegungen für die folgende Beschreibung:

  • Datei Master.ods sei die Datei die den Timer enthält und stets neu berechnet werden soll (In meinem Test habe ich da einfach die Funktion =NOW() in die Zelle A1 reingeschrieben)
  • Die Datei MasterTrigger.ods ist eine leere Datei in der ein benannter Zellbereich DUMMY existiert (in meinem Test habe ich einfach den Bereich A1:B1 als DUMMY benannt)

Nun geht man wie folgt vor:

  • Öffne Master.ods
  • Selektiere eine Zelle, in der (und den umgebenden Zellen, wie sie sich aus dem Zellbereich DUMMY ergeben) definitiv nie Daten stehen werden
  • Wähle Tabelle -> Verknüpfung zu externen Daten... und selektiere im Feld URL die Datei MasterTrigger.ods. Nach Auswahl der Datei sollte der benannte Bereich DUMMY erscheinen. Selektiere diesen
  • Setze den Haken bei [x] Aktualisieren alle und gib den für Dich passenden Wert in Sekunden an (z.B. 15)
  • Klick auf OK

Nun aktualisiert sich das Sheet alle wie angegebenen Sekunden automatisch (sofern Daten -> Berechnen -> [x] Automatisch gesetzt ist).

Wenn Dir das - was ich verstehen könnte - zu krude vorkommt, bleibt Dir nur selber ein Makro zu schreiben.

Anmerkung(en)

  • Falls Du nachträglich die Aktualisierungszeit ändern wolltest, dann ginge das über: Bearbeiten -> Verknüpfungen zu externen Dateien... -> Button: Ändern
  • Die hier verwendeten Namen sind natürlich alle Schall und Rauch

Getestet mit LibreOffice:

Version: 6.3.4.2,Build-ID: 60da17e045e08f1793c57c00ba83cdfce946d0aa
CPU-Threads: 8; BS: Linux 4.12; UI-Render: Standard; VCL: kde5; 
Gebietsschema: de-DE (de_DE.UTF-8); UI-Sprache: de-DE, Calc: threaded

Ich hoffe dies hilft Dein Problem zu lösen / Deine Frage zu beantworten

Wenn die Antwort geholfen hat, Dein Problem zu lösen, dann klick bitte das kleine Häkchen (✔) direkt neben der Antwort (wird grün dabei).

Bearbeiten Melden löschen Link mehr

Kommentare

Sehr gut! Funktioniert! Ich wäre da nie im Leben ohne HIlfe drauf gekommen. Ich bedanke mich recht herzlich.

Forsaken Gravatar-BildForsaken ( 2019-12-30 12:44:53 +0200 )Bearbeiten

Wenn es Dir geholfen hat, wäre es nett, das durch Anklicken des kleinen Häkchens (✔) direkt neben der Antwort (wird grün dabei) kenntlich zu machen. Vielen Dank …

Opaque Gravatar-BildOpaque ( 2019-12-30 13:01:52 +0200 )Bearbeiten
1

geantwortet 2019-12-30 13:22:13 +0200

Lupp Gravatar-Bild

updated 2019-12-30 13:25:55 +0200

Hmm, den Vorschlag von @Opaque finde ich ganz spannend, aber das geht dann doch auch ein bisschen einfacher:

Wenn man ein wenig Usercode schreibt, und inkauf nimmt, dass bei aktivierter timergetriggerter Neuberechnung immer eine kleine Basic Routine läuft, kann man es machen wie in diesem angehängten Beispiel, das natürlich auch einen in LibO verfügbaren Timer simuliert, indem es eine Funktion benutzt, die auf einen Hadwaretimer des Systems zurückgreift. Naja, man kann auch anders darüber sprechen.

Eine Möglichkeit zum Abschalten der zeitgetakteten Neuberechnung sollte man jedenfalls vorsehen, weil man sonst bei etwa nötigen Bearbeituung schlimme Überraschungen erleben kann. Mein Beispiel verwendet dafür einen Button, der auch in seinen Eigenschaften
a - die Buchführung macht, ober er als Ein- oder als Ausschalter wirken soll und b- das Zeitintervall (in ms) enthält.
(Falls der Button flimmert liegt es daran, dass deine Version schin und noch den entsprechenden Bug hat. Wird demnächst behoben sein.)

Ein kleiner Scherz: Die Information, die von der Formel in A10 benutzt wird, ist hinter dem Button versteckt.

NB: Im Basic-Kontext, und in diesem Fall deshalb auch bei der Buttonbeschriftung bleibe ich immer bei Englisch.

Bearbeiten Melden löschen Link mehr

Kommentare

@Lupp - super Lösung. Kannst Du mir Basic Laien noch sagen, was es mit pEvent.Source.Model auf sich hat. Das fällt für mich ein wenig vom Himmel und dahinter scheinen sich ja auch die 1500 ms zu verstecken.

Opaque Gravatar-BildOpaque ( 2019-12-30 14:07:38 +0200 )Bearbeiten

Sub, die durch Ereignisse aufgerufen werden, sollen gewisse Besonderheiten des Ereignisses auswerten können. Deshalb müssen sie bereit sein, einen entsprechenden Parameter zu akzeptieren. War das Ereignis z.B. ein Click of ein Toolbarelement, wird dem Ereignisparameter eine Ganzzahl übergeben, die Information über die gedrückten Modifikatiostasten enthält. Bei einem Buttonclick z.B. wird ein Objekt übergeben, das im wesentlichen nur senerseits das Objekt .Source enthält. Dieses ist zunächst als Formularelement präsent, gibt aber über seine .Model Eigenschaft auch Zugriff auf die Eigenschaften, die man im Editor des "eigentlichen Knopfes" sieht, also z.B das .Label.
Das eigentlich auch sehr nützliche .Tag wird leider (auch Im Englischen) im Editor mit irgendeinem blöd "lokalisierten" Namen angezeigt, z.B. "Additional Information".

Lupp Gravatar-BildLupp ( 2019-12-30 14:34:39 +0200 )Bearbeiten

Ach - jetz verstehe ich. Du greifst damit auf die Properties des Controls zu (und das ahnend habe ich dann auch die 1500 in Zusatzinformationen gefunden). Danke ...

Opaque Gravatar-BildOpaque ( 2019-12-30 14:46:44 +0200 )Bearbeiten
0

geantwortet 2019-12-30 06:26:21 +0200

ebot Gravatar-Bild

Hast du einen Haken gesetzt bei Daten>Berechnen>Automatisch?

Bildbeschreibung

Bearbeiten Melden löschen Link mehr

Kommentare

Bei mir Windows 10 Home; Version 1909; 64-Bit | LibreOffice, Version: 6.3.4.2 (x64).

ebot Gravatar-Bildebot ( 2019-12-30 06:26:57 +0200 )Bearbeiten

Der Fragesteller möchte wohl die Neuberechnung ohne irgendeinen Eingriff eines Benutzers Timer-gesteuert auslösen. Automatische Berechnung muss aber auch durch den Benutzer ausgelöst werden. Allerdings genügt dafür die Änderung (Eingabe / Editierung) eines Zellinhalts, durch die eine sichtbare Zelle "dirty" wird.
Ich weiß da keinen LibO-internen Weg (TimerListener oder sowas).
Wenn's kosmisch wichtig wäre, könnte man eine Tastatureingabe über eine Schnittstelle simulieren (Wie das z.B. Barcodeleser machen). Das OS kann dafür auch Lösungen bieten (die ich nicht kenne). Jetzt wird's freilich ziemlich abgehoben.

Lupp Gravatar-BildLupp ( 2019-12-30 11:57:19 +0200 )Bearbeiten
Registrieren oder einloggen, um zu antworten

Antwortwerkzeuge

1 Beobachter

Statistik

Gefragt: 2019-12-30 01:20:58 +0200

Angesehen: 52 Mal

Aktualisiert: Dec 30 '19