ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   suspend a routine (https://www.excelbanter.com/excel-programming/362729-suspend-routine.html)

Patrick Simonds

suspend a routine
 
The code below calls a userform any time a cell is selected within that
range and it works fine, but, the routine which is triggered by a button on
the userform also selects a cell within that range causing the userform to
reappear. Is there any way to suspend that code while the macro runs its
course?


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

If Not Application.Intersect(Target, Range("A5:A200")) Is Nothing Then
Path_Of_Action.Show

End Sub



JE McGimpsey

suspend a routine
 
in your userform code:

Application.EnableEvents = False
'your selection line here
Application.EnableEvents = True

In article ,
"Patrick Simonds" wrote:

The code below calls a userform any time a cell is selected within that
range and it works fine, but, the routine which is triggered by a button on
the userform also selects a cell within that range causing the userform to
reappear. Is there any way to suspend that code while the macro runs its
course?


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

If Not Application.Intersect(Target, Range("A5:A200")) Is Nothing Then
Path_Of_Action.Show

End Sub


Jim Thomlinson

suspend a routine
 
You could probably remove the select statement from your code as selects are
rarely required. That beind said you can suspend the events from firing if
you want something like this (always use an error handler when you toggle
application level settings)...

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
on error goto errorhandler
application.enableevents = false 'turn off events
If Not Application.Intersect(Target, Range("A5:A200")) Is Nothing Then
Path_Of_Action.Show

ErrorHandler:
application.enableevents = true 'turn events back on...
End Sub

--
HTH...

Jim Thomlinson


"Patrick Simonds" wrote:

The code below calls a userform any time a cell is selected within that
range and it works fine, but, the routine which is triggered by a button on
the userform also selects a cell within that range causing the userform to
reappear. Is there any way to suspend that code while the macro runs its
course?


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

If Not Application.Intersect(Target, Range("A5:A200")) Is Nothing Then
Path_Of_Action.Show

End Sub





All times are GMT +1. The time now is 01:48 AM.

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