ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Deactivating Multipage Change Event (https://www.excelbanter.com/excel-programming/309409-deactivating-multipage-change-event.html)

[email protected]

Deactivating Multipage Change Event
 
I have the following code in a UserForm....

Sub Multipage1_Change()
If UserForm1.ListBox2.ListCount = 0 And UserForm1.Multipage1.Value 0
Then
Application.EnableEvents = False
UserForm1.Multipage1.Value = 0
MsgBox "Please make selection"
End If
End Sub

However when I "watch" this process, I notice that even though the
Application.EnableEvents = False executes, when I go to set the
UserForm back to Multipage1.Value = 0, the subroutine treats it like a
change and goes back to the top again.

Is there something special I have to do temporarily deactivate an event
in a userform? or a change event?


Bob Kilmer

Deactivating Multipage Change Event
 
see embedded

" wrote in message
...
I have the following code in a UserForm....

Sub Multipage1_Change()


Static blnIgnoreChange As Boolean
If blnIgnoreChange Then Exit Sub
blnIgnoreChange = True

If UserForm1.ListBox2.ListCount = 0 And UserForm1.Multipage1.Value 0
Then
Application.EnableEvents = False
UserForm1.Multipage1.Value = 0
MsgBox "Please make selection"
End If


blnIgnoreChange = False


End Sub

However when I "watch" this process, I notice that even though the
Application.EnableEvents = False executes, when I go to set the
UserForm back to Multipage1.Value = 0, the subroutine treats it like a
change and goes back to the top again.

Is there something special I have to do temporarily deactivate an event
in a userform? or a change event?




Dave Peterson[_3_]

Deactivating Multipage Change Event
 
Use a boolean variable and keep track yourself:

Dim blkProc as boolean
Sub Multipage1_Change()
if blkproc then exit sub
If UserForm1.ListBox2.ListCount = 0 And UserForm1.Multipage1.Value 0 Then
blkproc = true
UserForm1.Multipage1.Value = 0
blkproc = false
MsgBox "Please make selection"
End If
End Sub

" wrote:

I have the following code in a UserForm....

Sub Multipage1_Change()
If UserForm1.ListBox2.ListCount = 0 And UserForm1.Multipage1.Value 0
Then
Application.EnableEvents = False
UserForm1.Multipage1.Value = 0
MsgBox "Please make selection"
End If
End Sub

However when I "watch" this process, I notice that even though the
Application.EnableEvents = False executes, when I go to set the
UserForm back to Multipage1.Value = 0, the subroutine treats it like a
change and goes back to the top again.

Is there something special I have to do temporarily deactivate an event
in a userform? or a change event?


--

Dave Peterson



All times are GMT +1. The time now is 08:54 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com