• Home
  • Blog
  • Index
  • Impressum
Menu

blog-wurst

Darf es etwas mehr sein?
  • Home
  • Blog
  • Index
  • Impressum
Weltzeituhr in OpenOffice Calc

Weltzeituhr in OpenOffice Calc

Weltzeituhr ("Echtzeit-Spreadsheets")

January 7, 2009

Und sie bewegt sich doch... Viele Leute vermissen in OpenOffice eine Möglichkeit, Echtzeit in ihre Spreadsheets zu bringen, so wie es in Excel-Makros durch die Methode Application.OnTime ermöglicht wird. Hier zeige ich, wie es in OpenOffice Calc erreicht werden kann.

Für ein kleines Projekt wurden in einem Calc-Dokument Planzeiten anhand einiger Randparameter  berechnet. Zu den berechneten Zeitpunkten wollte ich möglichst pünktlich Aktionen ausführen. Bisher habe ich dazu die Termine manuell in ein Terminprogramm übertragen, das mich dann daran erinnerte. Da ich unnötige Arbeit verabscheue, begann ich zu forschen, ob dies nicht auch direkt in meinem Calc-Dokument zu erreichen sei. Bei meiner Internet-Recherche fand ich allerdings nur Artikel, in denen die Ansicht vertreten wurde, dass dies nicht möglich wäre.

Dann entdeckte ich im OpenOffice BASIC-Guide die Methode WAIT, die als Parameter eine Zeit in Millisekunden erwartete. In der Hoffnung, dass diese Methode kooperativ arbeiten würde, schrieb ich eine Makro-Methode mit einer Endlosschleife, in der ich einen Zellinhalt inkrementierte und anschließend eine Sekunde wartete. Voller Spannung rief ich aus meinem Spreadsheet die Methode auf und stellte erfreut fest, dass der Zelleninhalt im Sekundentakt hochgezählt wurde und ich ganz normal weiterarbeiten konnte. Auch Zellen, die von derart aktualisierten Zellen abhängen, werden automatisch aktualisiert.

Zur Veranschaulichung habe ich ein Calc-Dokument angelegt, das als "Weltzeituhr" fungiert. Damit es etwas spannender wird, habe ich die "Weltzeituhr" mit einem Start- und einem Stopp-Button versehen.-)

Hier der gesamte Quelltext des Makros:

--- hier ausschneiden ---------------------------------- Global bRun As Boolean Sub startTime() Doc = StarDesktop.CurrentComponent Sheet = Doc.Sheets(0) bRun = TRUE While (bRun) Sheet.getCellByPosition(2, 2).Value = Now() Wait 1000 Wend End Sub Sub stopTime() bRun = FALSE End Sub --- hier ausschneiden ----------------------------------

Der Start-Button ruft die Methode "startTime()" auf und der Stopp-Button die Methode "stopTime()".

Damit habe ich nun die Grundlage, meinen automatischen Erinnerungsmechanismus direkt in Calc zu implementieren.

Vielleicht hilft es euch ja auch weiter. Über Feedback würde ich mich sehr freuen.

Das Calc-Dokument mit der Weltzeituhr zum Download. Ich habe mit der OpenOffice Version 3.0.0 gearbeitet.

In Technik Tags Calc, Echtzeit, Excel, Makro, OpenOffice
← FassadenreflexionNeuer Server →

Bisher auf BLOG-WURST

Featured
Regardé.jpeg
Apr 6, 2020
Regardé
Apr 6, 2020
Apr 6, 2020
Tennessee Tear Drop
May 1, 2016
Tennessee Tear Drop
May 1, 2016
May 1, 2016
Apr 3, 2015
BLOG-WURST REMASTERED
Apr 3, 2015
Apr 3, 2015
antique07.jpg
Oct 23, 2011
Cuarto Polvo
Oct 23, 2011
Oct 23, 2011
antique06.jpg
Oct 22, 2011
Cuarto Azul
Oct 22, 2011
Oct 22, 2011
antique05.jpg
Oct 21, 2011
Patio
Oct 21, 2011
Oct 21, 2011
antique04.jpg
Oct 20, 2011
Escenario
Oct 20, 2011
Oct 20, 2011
antique03.jpg
Oct 19, 2011
Chimenea
Oct 19, 2011
Oct 19, 2011
antique02.jpg
Oct 18, 2011
Crujía
Oct 18, 2011
Oct 18, 2011
antique01.jpg
Oct 17, 2011
Fachada
Oct 17, 2011
Oct 17, 2011