Makro für 10mal für je 2 Minuten stoppen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

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.

Bild


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.


Bild


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


Bild


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


Bild


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


Bild

Beiträge aus den Excel-Beispielen zum Thema " Makro für 10mal für je 2 Minuten stoppen"