Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1304to1308
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
Inhaltsverzeichnis

Makro soll langsam ablaufen

Makro soll langsam ablaufen
15.03.2013 18:23:23
mehmet
Guten Tag Forum,
ich konnte mittels Makro Recorder ein Makro aufzeichen und anpassen.
Wenn ich jedoch auf dem Button "Lauf markieren" klicke,
läuft das Makro sehr schnell.
Kann man es so verlangsamen, dass man es optisch verfolgen kann.
Herzlichen Dank für die Hilfe
Gruss
Mehmet
https://www.herber.de/bbs/user/84393.xls

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Application.Wait Now
15.03.2013 18:50:16
Matthias
Hallo
Du könntest zum Einen im Debugger mit F8 im Einzelschrittmodus den Lauf verfolgen
oder Du setzt nach jedem Select ein Application.Wait
also so:
Range("AC4").Select
Application.Wait Now + TimeSerial(0, 0, 0.5)

so macht der Code dann immer 1/2 Sek Pause
Application.Wait Now + TimeSerial(0, 0, 1)

wäre dann 1 Sek.
Was willst Du den erreichen, wenn mach fragen darf?
Grß Matthias

AW: Application.Wait Now
15.03.2013 19:28:50
mehmet
Hallo Matthias,
danke für deine Hilfe.
Ich versuche bildlich darzustellen, wie man ein Paket von Position A nach Position B befördert, das aber auf bestimmte Punkte überlaufen muss. Diese Punkte werden dann später gekennzeichnet.
Leider kann ich die Zeitinterwale 0.5 und 0.6 nicht nach meinem Wunsch anpassen.
Wert: kleiner gleich 0.5 zu schnell (könnte was langsamer laufen)
Wert: grösser gleich 0.6 zu langsam (könnte was schneller laufen)
Werte dazwischen geht leider nicht.
Dank Dir
Viele Grüsse
https://www.herber.de/bbs/user/84395.xls

Anzeige
AW: Application.Wait Now
15.03.2013 19:41:15
mehmet
Hallo Matthias,
kann ich Werte
Application.Wait Now + TimeSerial(0, 0, 0.6)
von einer Zelle aus wählen. Z.B. aus Zelle AC1
Application.Wait Now + TimeSerial(0, 0, worksheet("tabelle1").(Range"ac1"))
und in Zelle AC1 steht dann 0.6
oder so ähnlich?
Gruss
Mehmet

AW: Application.Wait Now
15.03.2013 19:58:06
Nepumuk
Hallo Mehmet,
versuch es mal so:
Option Explicit

Private Declare Sub Sleep Lib "kernel32.dll" ( _
    ByVal dwMilliseconds As Long)

Public Sub Beispiel()
    Dim lngDelay As Long
    lngDelay = Worksheets("Tabelle1").Range("AC1").Value
    MsgBox "Jetzt geht's los"
    Call Sleep(lngDelay)
    MsgBox "Jetzt sind " & CStr(lngDelay) & " Millisekunden vegangen"
End Sub

In AC1 habe ich 600 für 600 Millisekunden eingetragen.
Gruß
Nepumuk

Anzeige
AW: Application.Wait Now
15.03.2013 20:38:29
mehmet
Hallo Nepumuk,
Ich konnte es anpassen. Es läuft wie gewünscht
Besten Dank an Dich und Matthias
Viele Grüsse
Mehmet

Erklärung warum das mit Wait nicht klappt
15.03.2013 23:51:51
Nepumuk
Hallo,
vielleicht noch zur Erklärung. TimeSerial erwartet jeweils eine Integerzahl für Stunde, Minute und Sekunde. Und das passiert wenn du 0,5 bzw. 0,6 als Sekunde einträgst:
Public Sub test()
    MsgBox Cint(0.5)
    MsgBox Cint(0.6)
End Sub

Es ist weder mit der Wait- noch mit der OnTime-Methode möglich Zeiten kleiner einer Sekunde zu warten.
Gruß
Nepumuk

Anzeige
AW: Application.Wait Now
16.03.2013 06:11:47
schauan
Hallo zusammen,
und noch ein Hinweis.
Die API Sleep belastet den Rechner weniger als Application.Wait, man sieht's im Taskmanager im Reiter Leistung bei der CPU-Auslastung deutlich.
API's sind dahingehend aber nicht generell immer besser. Bei OnTime bekommt Excel den Punkt ;-)
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

Kommt darauf an
16.03.2013 09:57:05
Nepumuk
Hallo André,
das kannst du nicht so generalisieren. Es kommt dabei darauf an was du vor hast. Bei manchen Sachen greift OnTime einfach nicht, weil es von Excel blockiert wird.
Gruß
Nepumuk

Anzeige
AW: Kommt darauf an
16.03.2013 10:54:23
schauan
Hallo Nepomuk,
Aha. Ich hatte bei meinen Tests einfach nur Sleep mit Wait und den API-Timer mit OnTime verglichen. Am Ende hab ich nur die Zeit ausgegeben und gleich noch kontrolliert, ob es da Abweichungen gibt - und die gibt es auch :-(
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

AW: Kommt darauf an
16.03.2013 12:06:11
Nepumuk
Hallo André,
OnTime (und Wait) ist ungenau. Du setzt z.B. die Startzeit und 08:00:00,500 also 500 Millisekunden nach 8 Uhr auf 08:00:01 OnTime wird damit 500 Millisekunden nach dem Setzen ausgeführt da es ja nur noch 500 Millisekunden bis zum Erreichen des Starttermins sind.
Gruß
Nepumuk
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge