Herbers Excel-Forum - das Archiv

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

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
Excel-Beispiele zum Thema " Makro für 10mal für je 2 Minuten stoppen"
Arbeitsmappe alle 5 Minuten neu berechnen Inhalt einer Zelle in Minutenabstand in einer Spalte auflisten
Zeitdifferenz in Schulstunden (45 Minuten) errechnen Meldung nach vorgegebener Minutenzahl
Stunden und Minuten getrennt summieren Zählen von Jahren, Monaten, Tagen, Stunden, Minuten, Sekunden