Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Stop Macro button in Excel VB


I have many buttons on my spreadsheets that run macros. Some of these
macros are searching through large data bases. As the results of these
searches are displayed in my worksheet, sometimes I can see the the
information that I was searching for and would then like to stop the
macro from running rather than searching through the rest of the
database. I would like to be able to stop the macro from running by
clicking on a professional looking stop button rather than pressing
Ctrl + Break.
Is there any VB script that can be programmed into a standard button
that will halt the macro?


--
grahammal
------------------------------------------------------------------------
grahammal's Profile: http://www.excelforum.com/member.php...o&userid=20336
View this thread: http://www.excelforum.com/showthread...hreadid=477826

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,163
Default Stop Macro button in Excel VB

It depends on the details of your code, but there are ways to do this.
Consider the following simple example:

Public StopNow As Boolean

Sub Button1_Click()
StopNow = False
For i = 1 To 30000
Range("A1").Value = i
' DoEvents
If StopNow Then Exit For
Next i
End Sub

Sub Button2_Click()
StopNow = True
End Sub

Key points:
- A variable that can be shared between the two button click events, or
whatever subs there are that drive your code.
- A DoEvents statement in the loop of the main code - otherwise it will be
impossible to click the 2nd button
- Clicking the 2nd button sets the shared variable to a specific value to
flag that you wish to stop the processing
- The main code checks the value of the variable as it loops and if it sees
the flag is set it exits the loop

In more complex situations you may have many places where you need to put
the DoEvents and check the value of the "flag" variable - also, you may need
to add some code that "cleans up" any leftover work to be done rather than
just bring your code to a sudden stop.
--
- K Dales


"grahammal" wrote:


I have many buttons on my spreadsheets that run macros. Some of these
macros are searching through large data bases. As the results of these
searches are displayed in my worksheet, sometimes I can see the the
information that I was searching for and would then like to stop the
macro from running rather than searching through the rest of the
database. I would like to be able to stop the macro from running by
clicking on a professional looking stop button rather than pressing
Ctrl + Break.
Is there any VB script that can be programmed into a standard button
that will halt the macro?


--
grahammal
------------------------------------------------------------------------
grahammal's Profile: http://www.excelforum.com/member.php...o&userid=20336
View this thread: http://www.excelforum.com/showthread...hreadid=477826


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Stop Macro button in Excel VB


Am trying to get to grips with your answer to my problem. For practise
I have generated two buttons in a new empty spreadsheet and put your
suggested code to the two buttons. When I run the first button I
simply get my usual eggtimer cursor till it finishes. At what stage am
I meant to get a chance to click on the second button.


--
grahammal
------------------------------------------------------------------------
grahammal's Profile: http://www.excelforum.com/member.php...o&userid=20336
View this thread: http://www.excelforum.com/showthread...hreadid=477826

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Stop Macro button in Excel VB


Sub Button1_Click()
StopNow = False
For i = 1 To 30000
Range("A1").Value = i
' DoEvents
If StopNow Then Exit For
Next i
End Sub


Sub Button2_Click()
StopNow = True
End Sub

I have tried the above idea to stop a macro continuing to run but it
dos'nt work for me.
I generated the 2 buttons, copied the relevent code to the buttons and
pressed the first button.
I can see the value clocking up in cell A1 but you can't press the
second button to stop the macro from running???
Am I being stupid or have I missed something?


--
grahammal
------------------------------------------------------------------------
grahammal's Profile: http://www.excelforum.com/member.php...o&userid=20336
View this thread: http://www.excelforum.com/showthread...hreadid=477826

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default Stop Macro button in Excel VB

The problem is most likely that you have not declared the StopNow
variable. If you don't declare the variable, VBA will create it
within the procedure in which it finds it. Therefore, you have
two completely variables named StopNow, one in each procedure.

The solution is to declare a global variable above and outside of
any procedu

Public StopNow As Boolean

If you had an "Option Explicit" statement at the top of the
module, as you should, the cause of the problem would be obvious
because you would get a "Variable Not Defined" compiler error.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"grahammal"
wrote in
message
...

Sub Button1_Click()
StopNow = False
For i = 1 To 30000
Range("A1").Value = i
' DoEvents
If StopNow Then Exit For
Next i
End Sub


Sub Button2_Click()
StopNow = True
End Sub

I have tried the above idea to stop a macro continuing to run
but it
dos'nt work for me.
I generated the 2 buttons, copied the relevent code to the
buttons and
pressed the first button.
I can see the value clocking up in cell A1 but you can't press
the
second button to stop the macro from running???
Am I being stupid or have I missed something?


--
grahammal
------------------------------------------------------------------------
grahammal's Profile:
http://www.excelforum.com/member.php...o&userid=20336
View this thread:
http://www.excelforum.com/showthread...hreadid=477826



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Stop Undo Button from working in Excel 2007 after a Save Jugglertwo Excel Discussion (Misc queries) 1 October 15th 09 09:19 PM
Start/Stop Macro Button Paul987 Excel Discussion (Misc queries) 1 July 10th 06 05:14 PM
Macro Record Stop Button Patrick Simonds Excel Discussion (Misc queries) 2 July 31st 05 06:11 PM
Excel Stop Recording Button Disappeared WeeSpeck Excel Discussion (Misc queries) 4 July 17th 05 01:23 PM
Can I programmatically simulate clicking the 'stop macro' button in the VBE? Alan Excel Programming 9 January 24th 05 01:15 AM


All times are GMT +1. The time now is 07:52 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"