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

Ausführungszeit messen?

Ausführungszeit messen?
02.10.2002 12:26:29
Markus
Hi,

das ist wieder eine newbie Frage:
Ich möchte die Zeit messen, die ein Excel Makro zur Ausführung braucht. Das Problem: dieses Makro läuft sehr lang, es läuft immer über Nacht, über Mitternacht hinweg und deswegen komme ich mit der Startzeit = timer, Ende = timer, Ausführungszeit = Ende - Startzeitnicht zurande. Bei anderen Sprache gibt es eine Zeit-Varibale, die die Sekunden seit einem festen Datum (e.g. 01.01.1904) angibt, vielleicht weiss jemand, ob es das in Excel auch gibt - oder wie man sich das aus TIME und DATE zusammenbasteln kann?

Danke im Voraus,

Markus

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Ausführungszeit messen?
02.10.2002 12:57:53
Volker
Hallo Markus,

hier bieten sich in VBA die Funtionen:
NOW und TimeSerial an. Beispiele findest du auch in der VBA-Hilfe

Gruss Volker

Re: Ausführungszeit messen?
02.10.2002 13:08:36
Volker
...und ein Muster findest du hier unter:
https://www.herber.de/forum/archiv/28to32/t30862.htm

Danke, aber dass misst nicht über Mitternacht hinw
02.10.2002 13:35:51
Markus
Volker,

danke für den Link, aber wenn ich den Code richtig verstehe, dann wird das Makro nicht korrekt messen, wenn es über die Datumsgrenze hinweg geht, oder? Und dgenau das brauche ich....

Code:
Sub timetest()
' aus Herber Forum soll messen!
Dim datStart As Date
Dim datEnde As Date
Dim dblSekunde As Double
Dim dblMinute As Double
Dim dblStunde As Double

datStart = Now()
dblStunde = Hour(Now())
dblMinute = Minute(Now())
dblSekunde = Second(Now()) + 10
WarteZeit = TimeSerial(dblStunde, dblMinute, dblSekunde)
Application.Wait WarteZeit
datEnde = Now()
laufzeit = Format(datEnde - datStart, "hh:mm:ss")
MsgBox "Aktualisierung beendet" & Chr(13) & _
"Bearbeitungszeit " & laufzeit & ""
End Sub

Anzeige
Re: Danke, aber dass misst nicht über Mitternacht hinw
02.10.2002 14:10:11
Markus
Danke für die Hilfe,

die Lösung, die ich brauche habe ich jetzt endlich gefunden: Intern rechnet Excel alle zeitangaben mit TIME und DATE nach 1.1.1900 oder 2.01.1904-Standard, wenn man TIME und DATE in mit Standard formatierten Zellen schreiben lässt wird das deutlich und damit kann man auch rechnen ...

markus

Anderer Vorschlag
02.10.2002 14:10:21
Martin Beck
Hallo Markus,

versuche mal

Das Makro läuft auf meinem Rechner ca. 3 Minuten. Ich habe die Systemzeit auf 23:59 gestellt und das Ergebnis wurde in Diff korrekt berechnet und dargestellt.

Gruß
Martin Beck

Re: Anderer Vorschlag
02.10.2002 14:26:52
Markus
Martin!,

super! - funktioniert und ist genau dass, was ich suche - nur das vielleicht auch Tage in die Ausgabe rein müssen, aber das schaffe ich dann schon.

Gruss,

Markus

Anzeige
Re: Anderer Vorschlag
02.10.2002 14:56:07
Martin Beck
Hallo Markus,

bei einer Laufzeit von mehr als einem Tag würde ich mir eher Gedanken über die Verbesserung der Performance machen ;-)

Gruß
Martin Beck

Re: Anderer Vorschlag
02.10.2002 15:02:24
Markus
Hi Martin,


das machen wir auch noch (Stichwort: keine Schleifen etc.), aber das Makro läuft über eine sehr grosse SQl Datenbank und das kann es nur in der nacht tun....
Danke für Deine Hilfe,

markus

Re: Anderer Vorschlag
02.10.2002 15:04:44
Stefan
Hallo,

probiers doch mal mit

Declare Function GetTime Lib "winmm.dll" Alias "timeGetTime" () As Long

damit kannst du dann eine Funktion timeGetTime verwenden, welche die Zeit seit dem Rechnereinschalten in ms zurückgibt.


Sollte daher ein paar Wochen funktionieren befor Long überläuft.



Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige