Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
164to168
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
164to168
164to168
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeiten erfassen

Zeiten erfassen
09.10.2002 21:17:47
Rolf St
Hallo Excel Experten!
Ich habe dieses tolle Makro bei Hans Herber auf der CD gefunden.
Folgende Änderungswünsche habe ich:
- eine laufende Uhr ab gestartete Zeit in E1 (nicht die Zeit der Systemuhr)
- ist das stoppen von 100derstel und 1000sentel auch möglich h:mm:ss,00 z.B. 1:22:33,25
- ist es möglich, das wenn der Start erfolgt die Anfangzeit in D1 geschrieben wird und die
Zwischenzeiten immer E1 – D1 berechnet werden und fortlaufend in Spalte D3:D1000 geschrieben werden

Module: basMain

Option Explicit

Sub Start()
Time = Now + TimeValue("00:00:01")
Range("A2:C" & Rows.Count).ClearContents
Range("D1") = Time

End Sub

Sub schreiben()
Dim intRow As Integer
intRow = Cells(Rows.Count, 3).End(xlUp).Row + 1
Cells(intRow, 3) = Time
Cells(intRow, 4) = Cells(intRow, 3) - Range("D1")

End Sub

Sub Stopp()
On Error Resume Next
Application.OnTime Time, "Start", , False

End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zeiten erfassen
12.10.2002 04:47:12
Hans W. Herber
Hallo Rolf,

auch dieser Code wurde - wie alle anderen - für die neue CD-ROM überarbeitet und verbessert.

Der Zwischenzeit-Schaltfläche weise folgendes Makro zu:

Das Makro zum Eintragen der Startzeit wirst Du leicht anpassen können.

hans

Re: Zeiten erfassen
12.10.2002 09:42:33
Rolf St
Hallo Hans!

Vielen Dank!

Tschüß
Rolf

Re: Zeiten erfassen
12.10.2002 09:50:08
Hans W. Herber
... was ich vergass: Excel kann nur bis minimal Sekunden zählen. Über einen API-Aufruf können kleinere Stückelungen erreicht werden, die Umsetzung im konkreten Fall ist allerdings nicht ganz unkompliziert.

hans

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

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige