userform Enabled property behavior changes between excel 97 and 2000/3

N

Nicholas Dreyer

I have a lengthy process, call it My Process, started by clicking a
button from a userform.

MyProcess can take a few minutes, and while it's running I want all
excel user interfacing disabled. In excel 97 I simply surrounded the
call to MyProcess in CommandButton_Click(), where CommandButton is the
button on the form that starts the process, with lines like the
following setting the userform Enabled property to False and back to
True again:

Private Sub CommandButton_Click()
Me.Enabled = False
MyProcess
Me.Enabled = True
End Sub

This works fine in excel 97, but in excel 2000 and 2003 excel remains
locked up after exiting CommandButton_CLick and I have to do
<ctrl><Break> to regain control of excel again. In order to be
convinced that MyProcess is not interacting in some unexpected way
with excel, it is easy to replicate the situation by creating a simple
userform with one button called CommandButton and the following code:

Private Sub CommandButton_Click()
Me.Enabled = False
Me.Enabled = True
End Sub

One click on CommandButton locks up excel as described above.
<ctrl><break> puts you on the line that does the userform.show, and a
check on userform.Enabled at then confirms it is True, even though the
CommandButton remains quite inaccessible.

What am I missing here?

Nick
 
N

NickHK

Nicholas,
XL2K.
It does seem there is a problem, as the Local windows correctly reports the
value of Enabled property and it works as expected if you step through the
code, but not if run normally.
Not sure of the cause yet, but what about put all you control in a frame and
disable that instead ?
Or maybe Application.Interactive suits you ?

NickHK
 
N

Nicholas Dreyer

NickHK:

Thanks

The frame idea works, but Application.Interavtive=False, does not
prevent buttons on the userform to be accessed, which is the main
"interface" I was hoping to prevent.

It seems like a bug though, that turning a userform enabled property
to False locks it up forever, even after setting enabled back to True.

Nick D.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top