Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeitbedarf für Makroausführung messen

Forumthread: Zeitbedarf für Makroausführung messen

Zeitbedarf für Makroausführung messen
29.08.2002 22:39:44
Robert B.
Hallo Leute,

ich möchte verschiedene Makro ausprobieren, die letztlich zum gleichen Ergebnis führen. Dazu würde ich gerne die benötigte
Laufzeit bei der Ausführung messen und nach Beendigung des Makros
per MsgBox anzeigen lassen.

Ich habe so einen Code schon einmal gesehen aber leider wieder verloren.

Vielleicht kann mir einer von Euch weiterhelfen.


Gruß Robert

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zeitbedarf für Makroausführung messen
29.08.2002 22:54:19
Axel
Hallo,

vielleicht geht folgendes schon über Deine Anforderung heraus, aber hiermit kannst Du ein echtes Profiling erstellen, da die Laufzeiten einzelner Prozeduren erfaßt werden können.

Zum Aufruf ist jeweils am Anfang der Prozeduren/Funktionen, deren Laufzeit ermittelt werden sollen, folgender Code einzufügen:



Anzeige
Re: Zeitbedarf für Makroausführung messen
29.08.2002 23:20:17
L.Vira
Sub Test()
Dim Start as Double
Start = Timer

hier jetzt dein Makro.......


MsgBox Format(Timer-Start,"#0.00") & " Sekunden gerödelt!"
End Sub

Re: Zeitbedarf für Makroausführung messen
29.08.2002 23:20:56
Robert B.
Hallo Axel,

vielen Dank, das ist ja eine super Lösung.

Genau so etwas habe ich gesucht.

Währe nett wenn Du mich informieren könntest wenn Dein Tool fertig ist, da ich sehr interessiert bin.

Würde mich sehr freuen.

Gruß Robert

Anzeige
Re: Zeitbedarf für Makroausführung messen
29.08.2002 23:31:01
Robert B.
Hallo L.Vira,

ich wußte, daß der Code nicht sehr aufwendig war.
Trotzdem gewußt wie.

Vielen Dank

Gruß Robert

Re: Zeitbedarf für Makroausführung messen
29.08.2002 23:35:06
Axel
Hallo Robert,

kein Problem. Schick mir bitte eine Mail damit ich Deine Adresse bekomme.

Gruß
Axel
Email: wildspitze@gmx.de

Anzeige

Infobox / Tutorial

Zeitbedarf für die Makroausführung messen in Excel


Schritt-für-Schritt-Anleitung

Um die Laufzeit eines Makros zu messen, kannst du den folgenden VBA-Code verwenden. Dieser Code nutzt den Timer, um die Zeit in Sekunden zu erfassen:

Sub Test()
    Dim Start As Double
    Start = Timer ' Zeit zu Beginn des Makros speichern

    ' Hier dein Makro einfügen
    ' ...

    MsgBox Format(Timer - Start, "#0.00") & " Sekunden gerödelt!" ' Zeitdifferenz anzeigen
End Sub
  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu über Einfügen > Modul.
  3. Kopiere den obigen Code in das Modul.
  4. Ersetze den Kommentar ' Hier dein Makro einfügen mit deinem tatsächlichen Makrocode.
  5. Führe das Makro aus, um die benötigte Zeit zu messen.

Häufige Fehler und Lösungen

  • Fehler: MsgBox zeigt "0 Sekunden" an.

    • Lösung: Stelle sicher, dass dein Makro tatsächlich eine gewisse Zeit benötigt, um zu laufen, und dass der Code innerhalb des Makros korrekt platziert ist.
  • Fehler: Timer gibt falsche Werte zurück.

    • Lösung: Der Timer zählt die Zeit in Sekunden seit Mitternacht. Wenn dein Makro länger als 24 Stunden läuft, wird der Timer zurückgesetzt. In diesem Fall solltest du eine andere Methode zur Zeitmessung verwenden.

Alternative Methoden

Eine andere Möglichkeit, die Zeit für die Ausführung eines Makros zu messen, ist die Verwendung eines benutzerdefinierten VBA-Timers. Du kannst einen Timer erstellen, der die Zeit in Millisekunden misst:

Sub TimerDemo()
    Dim StartTime As Long
    StartTime = GetTickCount ' Zeit in Millisekunden speichern

    ' Hier dein Makro einfügen
    ' ...

    MsgBox "Durchlaufzeit: " & (GetTickCount - StartTime) & " Millisekunden"
End Sub

Um GetTickCount nutzen zu können, musst du die kernel32-Bibliothek importieren. Das kann jedoch ein wenig komplizierter sein.


Praktische Beispiele

Wenn du verschiedene Makros vergleichen möchtest, kannst du eine Schleife verwenden, um mehrere Makros hintereinander auszuführen und deren Laufzeiten zu messen:

Sub VergleichMakros()
    Dim Start As Double
    Dim i As Integer

    For i = 1 To 5 ' Beispiel: Fünf Durchläufe
        Start = Timer
        Call DeinMakro ' Ersetze "DeinMakro" durch den Namen deines Makros
        MsgBox "Durchlauf " & i & ": " & Format(Timer - Start, "#0.00") & " Sekunden"
    Next i
End Sub

Tipps für Profis

  • Nutze Debug.Print, um die Laufzeiten in das Direktfenster auszugeben, anstatt MsgBox zu verwenden, um die Ausführung nicht zu unterbrechen.
  • Überlege, ob du die Application.Volatile Methode nutzen möchtest, um die Laufzeit von benutzerdefinierten Funktionen zu messen, die in Zellen verwendet werden.
  • Mache dir eine Liste mit den verschiedenen Laufzeiten, um Trends zu erkennen und die Effizienz deiner Makros zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich die Zeit in Minuten und Sekunden anzeigen? Du kannst die Zeitformatierung anpassen, indem du den Code wie folgt änderst:

MsgBox Format((Timer - Start) / 60, "#0") & " Minuten und " & Format((Timer - Start) Mod 60, "#0") & " Sekunden"

2. Kann ich die Zeit eines bestimmten Makros direkt messen? Ja, du kannst einfach den Timer-Code in das spezifische Makro einfügen, um die Laufzeit nur für dieses Makro zu erfassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige