Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Stop the _Change event? Is there EnableEvents for Forms?
I would like to be able to temporarily disable one of the _Change events in
my form because I don't want it to fire during, for example, the initialize sub. I've tried several things including using the .enabled=false, and ..locked=false, and even Application.EnableEvents = False, ...but the _Change event still fired. Here is the specific sub I want to temporarily disable. It's for a textbox called CurrentPBox that calls a very involved Draw routine. Private Sub CurrentPBox_click() If IsNumeric(CurrentPBox) And CurrentPBox <= CurrentPSpin.Max _ And CurrentPBox = CurrentPSpin.Min Then pCurrentP = CurrentPBox 'if its a valid value, store the value & spin CurrentPSpin = CurrentPBox DrawPetal pCurrentP, p, m, s, pCor pBox = pCurrentP Else CurrentPBox = pCurrentP 'if its invalid, replace it with what had been there End If End Sub Thanks! -Tony |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Stop the _Change event? Is there EnableEvents for Forms?
Set events to false. Then is the code you don't want to run
Private Sub CurrentPBox_click() If application.EnableEvents = False then exit sub If IsNumeric(CurrentPBox) And CurrentPBox <= CurrentPSpin.Max _ And CurrentPBox = CurrentPSpin.Min Then pCurrentP = CurrentPBox 'if its a valid value, store the value & spin CurrentPSpin = CurrentPBox DrawPetal pCurrentP, p, m, s, pCor pBox = pCurrentP Else CurrentPBox = pCurrentP 'if its invalid, replace it with what had been there End If End Sub EnableEvents only works on events in the Excel object module. However, you can check its status in this event. -- Regards, Tom Ogilvy "T_o_n_y" wrote in message ... I would like to be able to temporarily disable one of the _Change events in my form because I don't want it to fire during, for example, the initialize sub. I've tried several things including using the .enabled=false, and .locked=false, and even Application.EnableEvents = False, ...but the _Change event still fired. Here is the specific sub I want to temporarily disable. It's for a textbox called CurrentPBox that calls a very involved Draw routine. Private Sub CurrentPBox_click() If IsNumeric(CurrentPBox) And CurrentPBox <= CurrentPSpin.Max _ And CurrentPBox = CurrentPSpin.Min Then pCurrentP = CurrentPBox 'if its a valid value, store the value & spin CurrentPSpin = CurrentPBox DrawPetal pCurrentP, p, m, s, pCor pBox = pCurrentP Else CurrentPBox = pCurrentP 'if its invalid, replace it with what had been there End If End Sub Thanks! -Tony |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Stop the _Change event? Is there EnableEvents for Forms?
I see that Tom has offered up a (quite novel) solution, but the way that I
do it is to maintain my own events Boolean, like so Private fReEntry As Boolean Private Sub CurrentPBox_click() If Not fReEntry Then fReEntry = True If IsNumeric(CurrentPBox) And CurrentPBox <= CurrentPSpin.Max _ And CurrentPBox = CurrentPSpin.Min Then pCurrentP = CurrentPBox 'if its a valid value, _ store the value & spin CurrentPSpin = CurrentPBox DrawPetal pCurrentP, p, m, s, pCor pBox = pCurrentP Else CurrentPBox = pCurrentP 'if its invalid, _ replace it with what had been there End If fReEntry = False End If End Sub -- HTH Bob Phillips (there's no email, no snail mail, but somewhere should be gmail in my addy) "T_o_n_y" wrote in message ... I would like to be able to temporarily disable one of the _Change events in my form because I don't want it to fire during, for example, the initialize sub. I've tried several things including using the .enabled=false, and .locked=false, and even Application.EnableEvents = False, ...but the _Change event still fired. Here is the specific sub I want to temporarily disable. It's for a textbox called CurrentPBox that calls a very involved Draw routine. Private Sub CurrentPBox_click() If IsNumeric(CurrentPBox) And CurrentPBox <= CurrentPSpin.Max _ And CurrentPBox = CurrentPSpin.Min Then pCurrentP = CurrentPBox 'if its a valid value, store the value & spin CurrentPSpin = CurrentPBox DrawPetal pCurrentP, p, m, s, pCor pBox = pCurrentP Else CurrentPBox = pCurrentP 'if its invalid, replace it with what had been there End If End Sub Thanks! -Tony |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Stop the _Change event? Is there EnableEvents for Forms?
Tom,
That's clever. Thanks. -Tony "Tom Ogilvy" wrote: Set events to false. Then is the code you don't want to run Private Sub CurrentPBox_click() If application.EnableEvents = False then exit sub If IsNumeric(CurrentPBox) And CurrentPBox <= CurrentPSpin.Max _ And CurrentPBox = CurrentPSpin.Min Then pCurrentP = CurrentPBox 'if its a valid value, store the value & spin CurrentPSpin = CurrentPBox DrawPetal pCurrentP, p, m, s, pCor pBox = pCurrentP Else CurrentPBox = pCurrentP 'if its invalid, replace it with what had been there End If End Sub EnableEvents only works on events in the Excel object module. However, you can check its status in this event. -- Regards, Tom Ogilvy "T_o_n_y" wrote in message ... I would like to be able to temporarily disable one of the _Change events in my form because I don't want it to fire during, for example, the initialize sub. I've tried several things including using the .enabled=false, and .locked=false, and even Application.EnableEvents = False, ...but the _Change event still fired. Here is the specific sub I want to temporarily disable. It's for a textbox called CurrentPBox that calls a very involved Draw routine. Private Sub CurrentPBox_click() If IsNumeric(CurrentPBox) And CurrentPBox <= CurrentPSpin.Max _ And CurrentPBox = CurrentPSpin.Min Then pCurrentP = CurrentPBox 'if its a valid value, store the value & spin CurrentPSpin = CurrentPBox DrawPetal pCurrentP, p, m, s, pCor pBox = pCurrentP Else CurrentPBox = pCurrentP 'if its invalid, replace it with what had been there End If End Sub Thanks! -Tony |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Problem with sub..._Change | Excel Programming | |||
enableevents in event codes | Excel Programming | |||
Why _Change(ByVal Target As Range) | Excel Programming | |||
Application.EnableEvents = true, but no event fires | Excel Programming |