Re: Zeiten erfassen
12.10.2002 11:03:17
Rolf St.
Hallo Hans,
ich habe mal ein altes Makro gefunden, mit dem ich auch die Zeiten in kleineren Einheiten messen kann. (Excel 4.0)
Das ganze läuft ganz gut. Ich dachte ich finde eine neue Version? 'Modul1
'Variable für Startzeit
Dim vStartzeit As Double
' holt die Startzeit
Public Function getStartzeit() As Double
getStartzeit = vStartzeit
End Function
'Setzt die Startzeit
Public Function setStartzeit(Zeit As Double) As Double
vStartzeit = Zeit
End Function
Dann Tabellenblatt Makro1
auto_öffnen läuft automatisch bei Öffnen der Datei (Achtung Makro nicht deaktivieren, wenn bei Öffnen gefragt wird)!!!!
Taste_q_ein
=BEI.TASTE("q";"stoppuhr_klick")
Taste q einschalten
=RÜCKSPRUNG()
=RÜCKSPRUNG()
auto_schliessen
läuft automatisch bei Schliessen der Datei
Taste_q_aus
=BEI.TASTE("q";"")
Taste S wieder auf normal
=RÜCKSPRUNG()
Stoppuhr_Start
=SIGNAL()
=FORMEL(JETZT();SU_Startzeit)
Startzeit einsetzen
=setstartzeit(JETZT())
=BEI.ZEIT(JETZT()+ZEITWERT("0:00:01");"Stoppuhr_Neuezeit")
Aktualisierung der Uhr aufrufen (jede Sekunde)
SU_Uhrläuft=WAHR
SU_EinlaufZähler=0
Zähler für die Zeile, in die die nächste Zeit geschrieben wird
=RÜCKSPRUNG()
Stoppuhr_Neuezeit
=FORMEL(JETZT()-getstartzeit();SU_Uhr)
=WENN(SU_Uhrläuft)
=BEI.ZEIT(JETZT()+ZEITWERT("0:00:01");"Stoppuhr_Neuezeit")
=ENDE.WENN()
=RÜCKSPRUNG()
Stoppuhr_Ende
SU_Uhrläuft=FALSCH
=RÜCKSPRUNG()
=DATEI.ZUORDNEN(2)
Stoppuhr_Klick SU_EinlaufZähler=SU_EinlaufZähler+1
Zähler auf nächste Zeile hochzählen (bei Start auf 0 gesetzt)
AktZelle=BEREICH.VERSCHIEBEN
(Zeit_Anker;SU_EinlaufZähler;0;1;1)
Zelle ermitteln, in die die Zeit eingesetzt wird
=WENN(NICHT(ISTLEER(AktZelle))) WARNUNG("Zelle ist nicht leer!";2)
=ENDE.WENN() =WENN(NICHT(SU_Uhrläuft=WAHR)) =WARNUNG("Stoppuhr nicht gestartet!";2)
=RÜCKSPRUNG() =ENDE.WENN()
=SIGNAL() FORMEL(JETZT()-SU_Startzeit;AktZelle)
Zeit seit Start einsetzen
=FORMEL(JETZT()-getstartzeit();AktZelle) AUSWÄHLEN(POSTEXT(AktZelle))
=RÜCKSPRUNG() Stoppuhr_LetzteZelleZurück
=WENN(SU_EinlaufZähler=0)
=WARNUNG("Noch keine aktuelle Eingabe!";2)
=RÜCKSPRUNG()
=ENDE.WENN() =FORMEL("";AktZelle) Zeit löschen SU_EinlaufZähler=SU_EinlaufZähler-1 Zähler wieder runtersetzen AktZelle
=BEREICH.VERSCHIEBEN(Zeit_Anker;SU_EinlaufZähler;0;1;1)
=RÜCKSPRUNG()
=WARNUNG(getstartzeit())
Das ganze läuft ganz gut!
Tschüß
Rolf