Ich habe mir ein CALC-Macro an das Event "Activate Document" von Sheet1 gehängt und das läuft dummerweise in einer Endlosschleife und ich weiß nicht, wie ich das verhindern kann. Im Makro muss ich leider die Tabellenblätter wechseln und komme am Ende wieder auf Sheet1 zurück. Erschwert wird das Ganze dadurch, dass ich in VBA (Excel) programmiert habe. Das Makro läuft aber ansonsten sehr stabil und ich möchte es ungern auf OO-Basic umstellen, da doch einige Arbeit darin steckt. Hier mal ein Beispiel, das leichter verständlich ist:
Code: Alles auswählen
Option VBASupport 1
Sub Sh1Macro
Application.EnableEvents = False ' Events verbieten
Sheets("Sheet2").Activate ' Blatt wechseln
msgbox "Now on Sheet2"
Sheets("Sheet1").Activate ' Zurück auf das alte Blatt
msgbox "Now on Sheet1"
Application.EnableEvents = True ' Events wieder erlauben
End Sub
Nach Auslösen des Events (Wechseln auf Sheet1) wird Sheet2 aktiviert und eine Meldung ausgegeben. Dann wird wieder auf Sheet1 gewechselt, die zweite Meldung kommt aber nicht. Statt dessen wird wieder die erste Meldung ausgegeben, da ein neuer Event ausgelöst wurde. Unter Excel verhindert
Application.EnableEvents = False geschachtelte Events. Was muss ich in CALC Basic schreiben, damit der Event nicht durch sich selbst unterbrochen wird?