EnableancelKey=xlErrorHandler not working in UserForm

  • Thread starter Thread starter Nathan Gutman
  • Start date Start date
N

Nathan Gutman

I am runing XL97 in Win95.

I am trying to prevent a user from disabling a userform using
Ctrl-Break. I know how to stop him from clicking on the X but he can
still press Ctrl-Break and get out from the code..
I am using the code below to trap Ctrl-Break error 18 but it doesn't
work and I can't figure out why.

No matter what I do I don't seem to get it to go to the ErrorHandler
while UserForm1 is showing.

There isn't anything on that in MSKnowledgebase.
Thanks for any help.

'This is in ThisWorkbook
Private Sub Workbook_Open()
Call On_Open
End Sub

'This is in Module1
Private Sub On_Open()
On Error GoTo ErrorHandler
Application.EnableCancelKey = xlErrorHandler
UserForm1.Show
ErrorHandler:
If Err.Number = 18 Then
UserForm1.Hide
MsgBox "pressed break"
End If
End Sub
 
I wasn't able to get the error hander code to run either. But setting up
the error handler (even empty) along with EnableCancelKey = xlErrorHandler
does achieve what you want, doesn't it? It does not close the userform so
Ctrl-Break is effectively negated. You don't have to tell the user it
doesn't work; he can see that and will try something else.
 
The problem is that it doesn't get to the ErrorHandler line label.
Normally I would like to do some things when error 18 is discovered.
Display a warning message or save and close the workbook for example.
Just leaving it the way it is I had the code hang because it was
constantly displaying the user form.
Bottom line: xlErrorHandler does not seem to work as it is supposed to
and I wonder if any simple fixes, patches or workarounds exist.
 
Back
Top