eine Zelle aller x Sekunden aktualisieren

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: eine Zelle aller x Sekunden aktualisieren

von Lolli » So, 01.04.2007 20:30

Hi,

hab meinen Fehler gefunden.

Außerdem hab ich gleich am Anfang z auf false gesetzt, damit das Macro nicht mehmals gestartet werden kann.

Vielen Dank

Lolli

von turtle47 » Fr, 30.03.2007 21:10

Hallo Lolli,

bei mir funktioniert die Sache einwandfrei.

Zelle S1 zählt die verstrichene Zeit durch die Formel:

Code: Alles auswählen

=(U1-T1)
diese bleibt auch nach dem Stoppen erhalten.

In Zelle T1 steht die Startzeit durch Makroinhalt:

Code: Alles auswählen

   oZelle = oSheet.getCellRangeByName("T1")
   oZelle.value = now()
   oZell.NumberFormat = 41 'Format 05:57:06
diese bleibt ebenfalls nach dem Stoppen erhalten.

Zelle U1 erhöht im Sekundentakt durch Makroinhalt:

Code: Alles auswählen

oZelle = oSheet.getCellRangeByName("U1")
   do while z
     oZelle.value = now()
     wait 1000
   loop
Meine Testdatei kannst Du Dir hier downloaden:
http://www.office-center-jd.de/download/counter.ods

Viele Grüße

Jürgen

von Lolli » Fr, 30.03.2007 20:05

Hi turtle47,

danke erstmal, funktioniert auch fast.

Eigenartiger weise werden alle Felder die Datum und Zeit enthalten unabhängig von der Position im Datenblatt aktualisiert.

Das wiederum bedeudet, das ich die Zeit zum Zeitpunkt des Startens der Zeitnahme nicht festhalten kann.

Die abgelaufene Zeit ist immer 00:00:00.

Aber ich gebe nicht auf. Es sollte doch im Zweifelsfall möglich sein den Inhalt einer Zelle in eine Variable zu schreiben, die dann zum Rechnen verwendet wird, und somit die richtige Differenz anzeigt.

fällt dir was dazu ein??

Danke
Lolli

von turtle47 » Do, 29.03.2007 23:08

Hallo Lolli,

sowas geht meines Wissens nur mit einem Makro das wie folgt aussieht:

Code: Alles auswählen

function Uhrzeit()
   oZell = thisComponent.getcurrentSelection()
   oSheet = ThisComponent.sheets(0)
   oZelle = oSheet.getCellRangeByName("T1")
   oZelle.value = now()
   oZell.NumberFormat = 41 'Format 05:57:06
Zeitaktualisieren
end function

dim z as Boolean

Sub Zeitaktualisieren
   z = true
   oSheet = ThisComponent.sheets(0)
   oZelle = oSheet.getCellRangeByName("U1")
   do while z
     oZelle.value = now()
     wait 1000
   loop
End Sub

sub Zeitstopp
   z = false
end sub
Hinweis:

Code: Alles auswählen

oSheet = ThisComponent.sheets(0)
(0) = erstes Tabellenblatt kannst Du ändern in z.B. (1) für zweites Tabellenblatt usw.

Formatiere die Zellen S1, T1 und U1 mit dem Zeitformat HH:MM:SS
In Zelle S1 schreibst Du die Formel:

Code: Alles auswählen

=(U1-T1)
Erstelle eine Schaltfläche zu Starten des Makros

Code: Alles auswählen

function Uhrzeit
und eine zweite Schaltfläche zum Stoppen der Zeitnahme

Code: Alles auswählen

sub Zeitstopp
Bedenke aber bitte, dass das Makro die ganze Zeit im Hintergrund läuft und den Prozessor belastet!

Viel Erfolg.

Jürgen

eine Zelle aller x Sekunden aktualisieren

von Lolli » Do, 29.03.2007 22:03

Hi,

ich habe für meine Tochter eine Tabelle gebastelt, die Aufgaben zum Mathematik-üben mit Zufallswerten erstellt, und die Ergebnisse korrigiert.

Jetzt möchte ich in eine Ecke eine Zeitnahme machen, um Ihre Fortschritte besser verfolgen zu können.

Folgendes habe ich mir gedacht:

- Feld T1 enthält JETZT() im Zeitpunkt der Aufgabenerstellung durch drücken von [Strg]+[Shift]+[F9]

- Feld S1 enthält Jetzt()-T1 allerdings aktualisiert alle 1-5 Sekunden, um die Zeit verfolgen zu können.

- Also müsste nur das Feld S1 aller X Sekunden aktualisiert werden.

Ich und meine Tochter währen für jede Hilfe dankbar.

Lolli

Nach oben