Herbers Excel-Forum - das Archiv
Makro für 10mal für je 2 Minuten stoppen

|
Betrifft: Makro für 10mal für je 2 Minuten stoppen
von: Manuel Esterle
Geschrieben am: 01.12.2003 13:16:40
Hallo,
ich möchte innerhalb einer Schleife alle 2 Minuten die
Funktion "ausgabe" ausführen lassen. Wenn ich Application.OnTime
verwende, wartet Excel nur einmal für 2 Minuten und führt dann 10mal
hintereinander "ausgabe" aus:
For j = 1 To 10
zeit = Now + TimeValue("00:02:00")
Application.OnTime zeit, "ausgabe"
Next j
Verwende ich
Application.Wait Now() + TimeValue("00:02:00"), dann wird Excel mit
der Sanduhr lahmgelegt, und Excel reagiert nicht mehr.
Wie kann ich die Funktion 10 mal im Abstand von 2 Minuten ausführen lassen,
ohne Excel lahmzulegen? Während der 2minütigen Pausen soll man ganz normal
mit Excel arbeiten können.
Betrifft: Betriebssystem Vorlesung ;-)
von: Marco Miedl
Geschrieben am: 01.12.2003 13:22:09
Hast Du in der Betriebssystem Vorlesung gefehlt?
:-)
Aber mal im Ernst...
Ich hab ja keine Ahnung welche Scheduling Funktionalitäten Excel hat, aber ich fürchte, dass es für Dein Problem keine Lösung gibt. Wenn du deinen Scheduling Mechanismus in eine Schleif packst blockiert diese natürlich die ganze Zeit die Anwendung. muss dieser Zeitmechanismus in dem selben Workbook passieren? falls nein würd ich den AT Befehl (ein Betriebssystem Befehl) um diese Sache zu lösen.
Betrifft: AW: Betriebssystem Vorlesung ;-)
von: Harald Kapp
Geschrieben am: 01.12.2003 13:50:34
Hallo Ihr beiden,
der Ansatz wäre doch wohl, die Anweisung
Application.OnTime...
in der Prozedur "ausgabe" zu halten:
Option Explicit
Public AnzahlSchleifen As Integer
Sub test()
AnzahlSchleifen = 10
Call Ausgabe
End Sub
Sub Ausgabe()
Static zeit As Date
MsgBox "Es ist: " & zeit
zeit = Now + TimeValue("00:02:00")
If AnzahlSchleifen > 0 Then
Application.OnTime zeit, "ausgabe"
End If
AnzahlSchleifen = AnzahlSchleifen - 1
End Sub
Gruß Harald
Betrifft: AW: Betriebssystem Vorlesung ;-)
von: Manuel Esterle
Geschrieben am: 01.12.2003 15:36:19
Hallo Harald,
super, vielen Dank für die Hilfe. So klappt es.
Manuel
Betrifft: AW: Makro für 10mal für je 2 Minuten stoppen
von: Reinhard
Geschrieben am: 01.12.2003 13:46:03
Hallo Manuel,
so:
Dim Zaehler As Integer
Sub ZweiMinuten()
Application.OnTime Now + TimeValue("00:02:00"), "Ausgabe"
End Sub
Sub Ausgabe()
Zaehler = Zaehler + 1
Cells(Zaehler, 1) = Zaehler
If Zaehler <= 10 Then Call ZweiMinuten
End Sub
Gruß
Reinhard