Hallo Alex,
zeigt Dein "Betriebssystem" keine Uhrzeit an? Mein "MS-XP" stellt das automatisch in die "Fußleiste".
Vielleicht funktioniert das auch bei Deinem "BS".
Sonst geht es nur über "Ooo_Basic-Schiene" anderes Forum siehe "Forenübersicht".
mfg
Gert
Fortlaufende, sich selbst aktualisierende Zeit
Moderator: Moderatoren
-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re: Fortlaufende, sich selbst aktualisierende Zeit
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
Re: Fortlaufende, sich selbst aktualisierende Zeit
Hallo
Was genau willst du denn rechnen?
=JETZT() wird sich stets von selber aktualisieren, sobald du irgendwo in der Tabelle eine Änderung vornimmst.
Gruß Karo
Was genau willst du denn rechnen?
=JETZT() wird sich stets von selber aktualisieren, sobald du irgendwo in der Tabelle eine Änderung vornimmst.
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Fortlaufende, sich selbst aktualisierende Zeit
Hallo
Gut das du dazuschreibst: "im Rahmen von Flugsimulation " anderenfalls hätte ich darüber nachgedacht noch jemals in einen Flieger zu steigen.
Ich hab quick & dirty die Aktion "neu berechnen" aufgezeichnet und in eine 'do ... loop' -schleife gesteckt, ausserdem wird das Makro noch abgebrochen falls der Wert in A1 der ersten Tabelle 1 beträgt.
Das kann man sicher auch noch eleganter lösen, hab ich aber gerade keine Lust dazu.
Gruß Karo
Gut das du dazuschreibst: "im Rahmen von Flugsimulation " anderenfalls hätte ich darüber nachgedacht noch jemals in einen Flieger zu steigen.
Ich hab quick & dirty die Aktion "neu berechnen" aufgezeichnet und in eine 'do ... loop' -schleife gesteckt, ausserdem wird das Makro noch abgebrochen falls der Wert in A1 der ersten Tabelle 1 beträgt.
Das kann man sicher auch noch eleganter lösen, hab ich aber gerade keine Lust dazu.
Code: Alles auswählen
sub Neu_berechnen
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
do until thiscomponent.sheets(0).getcellbyposition(0,0).value = 1 'Abruchbedingung A1 = 1
dispatcher.executeDispatch(document, ".uno:Calculate", "", 0, Array())
wait 10000 'Wartezeit 10 Sekunden
loop
end sub
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Fortlaufende, sich selbst aktualisierende Zeit
Hallo
Genau so, erstelle ein neues Modul 'unterhalb' des Dokuments und kopiere den Quelltext in das per 'Bearbeiten' geöffnete Modul.
Starten kannst du es über den grünen Pfeil im Basicfenster oder auch über -->Extras-->Makros-->BasicMakros...'Ausführen'
oder auch per Tastatushortcut ( -->Extras--Anpassen--Tastatur )
Gruß Karo
Genau so, erstelle ein neues Modul 'unterhalb' des Dokuments und kopiere den Quelltext in das per 'Bearbeiten' geöffnete Modul.
Starten kannst du es über den grünen Pfeil im Basicfenster oder auch über -->Extras-->Makros-->BasicMakros...'Ausführen'
oder auch per Tastatushortcut ( -->Extras--Anpassen--Tastatur )
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re: Fortlaufende, sich selbst aktualisierende Zeit
Hallo Alex,
die Zahl 40158,45 besagt, das seit dem 30-12-1899(Referenz_Datum) 40158Tage vergangen sind. Da 1Tag=24Std. beinhaltet, ergibt die
Uhrzeit 11:40 die DezZahl 0,486 vom Tag. Die Uhrzeit 12:00 ist der halbe Tag (0,5 ); 8:00 =0,333..;16:00=0,666.. usw.
Weitere Erklärungen zur Berechnung von Datum & Zeit findest Du hier:
http://www.ooowiki.de/CalcFunktionenDat ... tumUndZeit
mfg
Gert
die Zahl 40158,45 besagt, das seit dem 30-12-1899(Referenz_Datum) 40158Tage vergangen sind. Da 1Tag=24Std. beinhaltet, ergibt die
Uhrzeit 11:40 die DezZahl 0,486 vom Tag. Die Uhrzeit 12:00 ist der halbe Tag (0,5 ); 8:00 =0,333..;16:00=0,666.. usw.
Weitere Erklärungen zur Berechnung von Datum & Zeit findest Du hier:
http://www.ooowiki.de/CalcFunktionenDat ... tumUndZeit
mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
Re: Fortlaufende, sich selbst aktualisierende Zeit
Ich hatte dieses Problem auch, dass ich eine laufende Uhr in einem Calc-Dokument gebraucht habe und nicht wollte, dass ständig Zellneuberechnungen durchgeführt werden.
Dann bin ich darauf gekommen, einen Trigger einzuführen. Die Triggerzelle des Uhrenblatts springt jede Sekunde (Wait 1000) von 0 nach 1 und wieder zurück.
Damit Calc gezwungen wird, die Displayzelle bei Veränderung des Triggers neu zu berechnen, stelle ich sie mit der Verkettenfunktion dar und füge einen leeren String ("") aus der Platzhalterzelle hinzu. Diese wiederum wird abhängig vom Wert der Triggerzelle immer neu berechnet (bleibt aber immer "").
Damit die Uhr immer wieder geeicht wird und nicht falschläuft, gibt es eine zweite Schleife die mittels des Calculate Befehle alle 50 Durchläufe (frei einstellbar) die Uhr mit der Systemzeit synchronisiert.
Um das Makro zu stoppen habe ich noch einen Unterbrecher eingeführt
Damit das Dokument nicht unter laufendem Makro beendet/gespeichert wird, sollte man das 2. Makro (s.u) an die entsprechenden Ereignisse knüpfen.
Dann bin ich darauf gekommen, einen Trigger einzuführen. Die Triggerzelle des Uhrenblatts springt jede Sekunde (Wait 1000) von 0 nach 1 und wieder zurück.
Damit Calc gezwungen wird, die Displayzelle bei Veränderung des Triggers neu zu berechnen, stelle ich sie mit der Verkettenfunktion dar und füge einen leeren String ("") aus der Platzhalterzelle hinzu. Diese wiederum wird abhängig vom Wert der Triggerzelle immer neu berechnet (bleibt aber immer "").
Damit die Uhr immer wieder geeicht wird und nicht falschläuft, gibt es eine zweite Schleife die mittels des Calculate Befehle alle 50 Durchläufe (frei einstellbar) die Uhr mit der Systemzeit synchronisiert.
Um das Makro zu stoppen habe ich noch einen Unterbrecher eingeführt
Damit das Dokument nicht unter laufendem Makro beendet/gespeichert wird, sollte man das 2. Makro (s.u) an die entsprechenden Ereignisse knüpfen.
Code: Alles auswählen
sub Uhr
rem Variablen und Anfangsbedingungen setzten------
mydoc = thiscomponent
mySheet = myDoc.Sheets().getByName("Display")
trigger = mysheet.getCellRangeByName("$F$4") rem Triggerzelle
clockstop = mysheet.getCellRangeByName("$I$4") rem Unterbrecherzelle
clockstop.value=0 rem Unterbrecherzelle null setzen
rem ----------------------------------------------------------------------
do rem äussere Schleife zur Zellenneuberechnung/Systemzeitabgleich (50 Durchläufe bis zur nächsten Sync)
for i = 1 to 50 rem innere Schleife zur Zeittriggerung
if clockstop.value <> 0 Then exit do rem Stopbedingung abfragen
trigger.value = 0 rem Trigger im Sekundentakt zwischen null und 1 springen lassen (Wait 1000 ist ca 1 sec)
wait 1000
trigger.value = 1
wait 1000
next i
thiscomponent.calculate
loop
clockstop.value=0 rem Unterbrecher rücksetzen
end sub
sub alle_Markros_beenden
end
end sub
- Dateianhänge
-
- Uhr.ods
- (11.58 KiB) 343-mal heruntergeladen