![]() |
userform Enabled property behavior changes between excel 97 and 2000/3
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 |
userform Enabled property behavior changes between excel 97 and 2000/3
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 "Nicholas Dreyer" wrote in message ... 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 |
userform Enabled property behavior changes between excel 97 and 2000/3
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. On Tue, 19 Sep 2006 14:18:14 +0800, "NickHK" wrote: 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 "Nicholas Dreyer" wrote in message ... 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 |
All times are GMT +1. The time now is 11:54 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com