Hi Bart,
I think it's related to the DoEvents.
Also note that if you have an errorhandler in Othersub
THAT will take over.
e.g.
Sub Test()
On Error GoTo errProc:
Application.EnableCancelKey = xlErrorHandler
BusyBee
MsgBox "Returned/completed"
Exit Sub
errProc:
MsgBox "Stopped Test"
End Sub
Sub BusyBee()
Dim i#, n#, m#
m = 100000000#
On Error GoTo errProc:
'note when called from test the key is in effect
For i = 1 To m: n = n + 1: Next
MsgBox "switch handler"
On Error GoTo 0
'each error will now be handled by the handler from the caller.
'but the enablekey is still active..
For i = 1 To m: n = n + 1: Next
MsgBox "from now on Esc wont work"
For i = 1 To m
n = n + 1: If n Mod 1000 Then DoEvents
Next
Exit Sub
errProc:
If MsgBox("Stopped Other... Continue?", vbYesNo) = vbYes Then
Resume
Else
End
End If
End Sub
hth
--
keepITcool
|
www.XLsupport.com | keepITcool chello nl | amsterdam
RB Smissaert wrote :
Have a bit of code with this simplified construction:
Sub Test()
On Error GoTo STOPTEST
Application.EnableCancelKey = xlErrorHandler
OtherSub
Do While Condition = True
DoEvents
OtherSub
DoEvents
Loop
STOPTEST:
MsgBox "Stopped Test"
End Sub
Now when I am in the Sub OtherSub the Escape key will interrupt this
code and go to STOPTEST, but not when I am in the Do While loop and
not in OtherSub. Ctrl + Break/Pause will work in both situations.
What could be the explanation for this?
Ideally I would like the Escape key to work in both situations.
RBS