Hi Julaka,
wie sieht denn dein Makro aus? Gibt's da irgendeine For-To-Next oder Do-(While)-Loop-Schleife? Ich gehe mal davon aus, da ein Makro ohne Schleife meist nur Millisekunden braucht um durchzulaufen. Da kommst du gar nicht zum Abbrechen.
Das was du vorhast ist durchaus möglich. Man muss nur wissen wie:
Der Code könnte in etwa so aussehen:
Dim Abbruch As Boolean
Sub meinMakro()
Running = True
Do
DoEvents
If Abbruch Then
MsgBox "Makro abgebrochen"
End
End If
Loop
End Sub
Sub MakroAbbrechen()
Abbruch = True
End Sub
Durch den Befehl DoEvents wird die Steuerung kurzzeitig an Excel zurückgegeben und erstmal dortige Events ausgeführt, bevor das Makro weiterläuft. Ein derartiges Event ist auch das Klicken einer Schaltfläche, die das Makro "MakroAbbrechen" ausführt. Dieses schreibt wiederum einen Wert in eine globale Variable, die du im Hauptmakro auslesen und darauf reagieren kannst.
PS: Ich hab mich bewusst für eine Dauerschleife Do : Loop entschieden um dir zu zeigen, wie du das Makro mit End abbrechen kannst.
Gruß Mr. K.
|