Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 32
Default Stopping Code from Running whilst in Loop...

Hi,

I'm performing a series of operations on cells within the used range of a
s/sheet. A summary of the code is as follows:

Dim c as range

on error goto errhandler
Application.EnableCancelKey = xlErrorHandler

For Each c In ActiveSheet.UsedRange

.....series of operations on each cell....

next c

exit sub

errhandler:

end sub

I'd like to give the user the option of breaking out of the loop using the
escape key. However the code stubbornly refuses to do this in practice...
I've tried using "doevents" without any luck - although I'm not sure that
I'm applying it correctly.

Suggestions....

Rgds....Chris




  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,298
Default Stopping Code from Running whilst in Loop...

I found that DOEVENTS causes odd behavious

my test procedure worked as expected.

However, I prefer to use a userform, with a cancel button. In your loop,
have a DOEVENTS, this will allow the PC system to trap the button click
event. Have the CANCEL button set a booloean, such as teh 'Quit' boolean
variable in my code. This always allows the the user to break cleanly from a
code loop, IMH Experience.


Sub test()
Dim x As Long
On Error GoTo trap
Dim QUIT As Boolean
Application.EnableCancelKey = xlErrorHandler
Do Until QUIT
For x = 1 To 100
Application.StatusBar = x
Next
Loop
Exit Sub
trap:
QUIT = True
Application.StatusBar = "break"

End Sub





"Chris Gorham" wrote:

Hi,

I'm performing a series of operations on cells within the used range of a
s/sheet. A summary of the code is as follows:

Dim c as range

on error goto errhandler
Application.EnableCancelKey = xlErrorHandler

For Each c In ActiveSheet.UsedRange

....series of operations on each cell....

next c

exit sub

errhandler:

end sub

I'd like to give the user the option of breaking out of the loop using the
escape key. However the code stubbornly refuses to do this in practice...
I've tried using "doevents" without any luck - although I'm not sure that
I'm applying it correctly.

Suggestions....

Rgds....Chris




  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 15
Default Stopping Code from Running whilst in Loop...

Hi,

This is the macro that I added to the workbook
-----------
Public Sub dolong()
On Error GoTo e
Application.EnableCancelKey = xlErrorHandler
While True
Debug.Print i
i = i + 1
Wend
Exit Sub

e:
If Err.Number = 18 Then
MsgBox "user stopped"
Stop
End If
End Sub
---------------------

Run this macro, using Tools -Macro - Macros- Run (dolong)
Press ESC while it is running & you will see that the msgbox appears

HTH
Kalpesh

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
Syntax for stopping a Do Loop? bondjel Excel Discussion (Misc queries) 5 March 22nd 10 01:35 PM
Status bar (or similar) to appear whilst running a long macro Ant Excel Discussion (Misc queries) 8 November 11th 05 09:21 AM
How do I pause a Macro whilst it is running? Gary[_20_] Excel Programming 4 August 26th 04 01:08 AM
How to Mute/Enable Windows Sounds whilst running VBA code Hotbird[_3_] Excel Programming 0 July 29th 04 04:43 PM
How to Mute/Enable Windows Sounds whilst running VBA code Hotbird[_3_] Excel Programming 0 July 20th 04 09:34 PM


All times are GMT +1. The time now is 10:40 AM.

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

About Us

"It's about Microsoft Excel"