Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Makro unterbrechen?!

Betrifft: Makro unterbrechen?! von: Andre
Geschrieben am: 23.08.2004 18:36:42

Hi,

folgende Schleife kann ich mit "Strg + Untbr" unterbrechen und bekomme eine Msgbox.

Kann ich das auch mit einem zweiten Makro realisieren? D.H. ich möchte diese Schleife z.B. laufen lassen und durch betätigen eines zweiten Button sofort unterbrechen.

Gibt es eine entsprechende Befehlszeile für die Tastenkombination "Strg + Untbr"?

Sub BeiKlick()
On Error GoTo EH
Application.EnableCancelKey = xlErrorHandler
For i = 1 To 10
LetzteZeile = Sheets("Tabelle1").Cells(Cells.Rows.Count, 1).End(xlUp).Row + 1
    Sheets("Tabelle1").Range("A" & i).Value = i
     Application.Wait (Now + TimeValue("0:00:01"))
Next
Exit Sub
EH:
MsgBox "Break Key Hit"
Application.EnableCancelKey = xlInterrupt
End Sub


Gruß Andre
  


Betrifft: AW: Makro unterbrechen?! von: Ramses
Geschrieben am: 23.08.2004 20:23:33

Hallo

eine Variante

Public EscCmd As Boolean

Private Sub Button2_Click()
EscCmd = False
End Sub



Sub BeiKlick()
Dim i As Integer
EscCmd = True
For i = 1 To 10
DoEvents
If EscCmd = False Then Exit Sub
LetzteZeile = Sheets("Tabelle1").Cells(Cells.Rows.Count, 1).End(xlUp).Row + 1
Sheets("Tabelle1").Range("A" & i).Value = i
Application.Wait (Now + TimeValue("0:00:01"))
Next i
End Sub

Gruss Rainer


  


Betrifft: AW: Makro unterbrechen?! von: Andre
Geschrieben am: 24.08.2004 09:58:48

Guten Morgen,

danke für deine Hilfe, aber diese Variante hilft mir nicht viel weiter. Mein Code läuft nicht permanent, daher müßte ich auf das Beenden des Codes minutenlang warten.

Vereinfacht sieht das Schema so aus (Mein Code in der Frage war wohl nicht sehr aussagekräftig diesbezüglich, sorry!):

Sub Test()

   'Mein Code

   If Application.wait (Now + TimeValue(!0:00:01")) then call NächstenTest

End Sub


Sub NächstenTest()

   'Mein zweiter Code

   If Application.wait (Now + TimeValue(!0:03:00")) then call Test

End Sub


Mit dieser Trennung in mehrere Codes ermögliche ich die Arbeit trotz laufendem Code, ansonsten würde ich immer von Excel "behindert" werden.

Fällt dir vielleicht noch ´ne andere Lösung ein? Es könnte über eine "SendKey"-Anweisung funktionieren, aber diese Art der Programmierung versuche ich zu vermeiden (zu unsicher!).

Gruß Andre


  


Betrifft: AW: Makro unterbrechen?! von: Ramses
Geschrieben am: 24.08.2004 13:15:34

Hallo

1. Was hältst du davon, das einfach mal zu probieren ? :-(
Mit DoEvents erlaubt EXCEL Eingaben und Tätigkeiten während des Makroablaufes.

2. Wenn deine Codes bzw. deine Abläufe anders aufgebaut sind, dann schreib das auch.
Ich bin kein Hellseher. Warum soll ich mir daher weiterhin Gedanken machen, ein Testmakro mit einem anderen Testmakro abzubrechen.

3. Grundsätzlich kannst du das Prinzip übernehmen. Bau einfach eine Abfrage nach WAHR oder FALSCH ein.



Gruss Rainer