Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Syntax for stopping a Do Loop? | Excel Discussion (Misc queries) | |||
Status bar (or similar) to appear whilst running a long macro | Excel Discussion (Misc queries) | |||
How do I pause a Macro whilst it is running? | Excel Programming | |||
How to Mute/Enable Windows Sounds whilst running VBA code | Excel Programming | |||
How to Mute/Enable Windows Sounds whilst running VBA code | Excel Programming |