Button to stop macro

NiklasNordkvist

New Member
Joined
Jan 5, 2023
Messages
6
Office Version
  1. 365
Platform
  1. Windows
Hello!
I have one button for starting the macro but I also want a button to stop the macro for running completely.
I don´t know how to type this, hope someone can help me out:
Here is the code I have:

VBA Code:
Sub TabShow()


Dim i As Integer

Dim Pause As Double


Pause = 5 'Pause delay in seconds

Loops = 1 'How many loops do you want to do


While Loops


For i = 1 To Worksheets.Count

If Worksheets(i).Visible Then 'Checks for Hidden worksheets and skips if hidden

Worksheets(i).Activate 'Select the next worksheet


x = Timer

While Timer - x < Pause 'This does the pausing

DoEvents: DoEvents

Wend

End If

Next i


Wend


End Sub
 

Excel Facts

Using Function Arguments with nested formulas
If writing INDEX in Func. Arguments, type MATCH(. Use the mouse to click inside MATCH in the formula bar. Dialog switches to MATCH.
try this: The button to stop it just needs to run "setstop"
VBA Code:
Public Stopflag
Sub TabShow()
Dim i As Integer
Dim Pause As Double
Pause = 5 'Pause delay in seconds
Loops = 3 'How many loops do you want to do
Stopflag = False
For lps = 1 To Loops   ' Code Added
For i = 1 To Worksheets.Count
If Worksheets(i).Visible Then 'Checks for Hidden worksheets and skips if hidden
Worksheets(i).Activate 'Select the next worksheet
x = Timer
While Timer - x < Pause 'This does the pausing

DoEvents: DoEvents
If Stopflag Then  ' Code Added
Exit Sub          ' Code Added
End If            ' Code Added
Wend

End If

Next i
Next lps          ' Code Added
End Sub

Sub setstop()
Stopflag = True
End Sub
 
Upvote 0
Solution
try this: The button to stop it just needs to run "setstop"
VBA Code:
Public Stopflag
Sub TabShow()
Dim i As Integer
Dim Pause As Double
Pause = 5 'Pause delay in seconds
Loops = 3 'How many loops do you want to do
Stopflag = False
For lps = 1 To Loops   ' Code Added
For i = 1 To Worksheets.Count
If Worksheets(i).Visible Then 'Checks for Hidden worksheets and skips if hidden
Worksheets(i).Activate 'Select the next worksheet
x = Timer
While Timer - x < Pause 'This does the pausing

DoEvents: DoEvents
If Stopflag Then  ' Code Added
Exit Sub          ' Code Added
End If            ' Code Added
Wend

End If

Next i
Next lps          ' Code Added
End Sub

Sub setstop()
Stopflag = True
End Sub
Works perfectly! Thought it was harder to solve, thanks a lot!
 
Upvote 0

Forum statistics

Threads
1,214,895
Messages
6,122,128
Members
449,066
Latest member
Andyg666

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top