Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have a repetitive loop in a macro that I want to run repeatedly until the
user decides to stop it. I tried having a non-modal userform with a toggle button which when pushed, it would loop out of the repetitive loop. However, since the macro is busy in the code, I cannot push the button in the user form. Does anyone have any ideas on how a user can intervene to stop the code from the repetitive loop? The userform is just an idea, but anything that works would be great. Thanks for any help! Mike |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Post your code in this forum first, maybe some1 may solve this !
thanks,, Halim Mike menuliskan: I have a repetitive loop in a macro that I want to run repeatedly until the user decides to stop it. I tried having a non-modal userform with a toggle button which when pushed, it would loop out of the repetitive loop. However, since the macro is busy in the code, I cannot push the button in the user form. Does anyone have any ideas on how a user can intervene to stop the code from the repetitive loop? The userform is just an idea, but anything that works would be great. Thanks for any help! Mike |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() Check Help for: EnableCancelKey Tim "Mike" wrote in message ... I have a repetitive loop in a macro that I want to run repeatedly until the user decides to stop it. I tried having a non-modal userform with a toggle button which when pushed, it would loop out of the repetitive loop. However, since the macro is busy in the code, I cannot push the button in the user form. Does anyone have any ideas on how a user can intervene to stop the code from the repetitive loop? The userform is just an idea, but anything that works would be great. Thanks for any help! Mike |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
This is almost exactly what I need! If I hit the ESC key and need to finish
up my loop (for some cleanup), is there a way to go back into the loop and finish up the current iteration. Essentially, I need to set a trigger "GetOutOfLoop" by pushing the ESC key and continue at the current line until the end of the loop. Here are the notes from the help about EnableCancelKey: On Error GoTo handleCancel Application.EnableCancelKey = xlErrorHandler MsgBox "This may take a long time: press ESC to cancel" For x = 1 To 1000000 ' Do something 1,000,000 times (long!) ' do something here Next x handleCancel: If Err = 18 Then MsgBox "You cancelled" End If "Tim Williams" wrote: Check Help for: EnableCancelKey Tim "Mike" wrote in message ... I have a repetitive loop in a macro that I want to run repeatedly until the user decides to stop it. I tried having a non-modal userform with a toggle button which when pushed, it would loop out of the repetitive loop. However, since the macro is busy in the code, I cannot push the button in the user form. Does anyone have any ideas on how a user can intervene to stop the code from the repetitive loop? The userform is just an idea, but anything that works would be great. Thanks for any help! Mike |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I found that the following line works well:
Resume Next This, however, will only go to the next line in the CURRENT procedure. Is there a way to go back to the current line in any procedure (especially a CALLED procedure)? Thanks! "Mike" wrote: This is almost exactly what I need! If I hit the ESC key and need to finish up my loop (for some cleanup), is there a way to go back into the loop and finish up the current iteration. Essentially, I need to set a trigger "GetOutOfLoop" by pushing the ESC key and continue at the current line until the end of the loop. Here are the notes from the help about EnableCancelKey: On Error GoTo handleCancel Application.EnableCancelKey = xlErrorHandler MsgBox "This may take a long time: press ESC to cancel" For x = 1 To 1000000 ' Do something 1,000,000 times (long!) ' do something here Next x handleCancel: If Err = 18 Then MsgBox "You cancelled" End If "Tim Williams" wrote: Check Help for: EnableCancelKey Tim "Mike" wrote in message ... I have a repetitive loop in a macro that I want to run repeatedly until the user decides to stop it. I tried having a non-modal userform with a toggle button which when pushed, it would loop out of the repetitive loop. However, since the macro is busy in the code, I cannot push the button in the user form. Does anyone have any ideas on how a user can intervene to stop the code from the repetitive loop? The userform is just an idea, but anything that works would be great. Thanks for any help! Mike |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You could always set a [global] flag in the error handler, and then use that to signal to other procedures to tidy up and then exit.
-- Tim Williams Palo Alto, CA "Mike" wrote in message ... I found that the following line works well: Resume Next This, however, will only go to the next line in the CURRENT procedure. Is there a way to go back to the current line in any procedure (especially a CALLED procedure)? Thanks! "Mike" wrote: This is almost exactly what I need! If I hit the ESC key and need to finish up my loop (for some cleanup), is there a way to go back into the loop and finish up the current iteration. Essentially, I need to set a trigger "GetOutOfLoop" by pushing the ESC key and continue at the current line until the end of the loop. Here are the notes from the help about EnableCancelKey: On Error GoTo handleCancel Application.EnableCancelKey = xlErrorHandler MsgBox "This may take a long time: press ESC to cancel" For x = 1 To 1000000 ' Do something 1,000,000 times (long!) ' do something here Next x handleCancel: If Err = 18 Then MsgBox "You cancelled" End If "Tim Williams" wrote: Check Help for: EnableCancelKey Tim "Mike" wrote in message ... I have a repetitive loop in a macro that I want to run repeatedly until the user decides to stop it. I tried having a non-modal userform with a toggle button which when pushed, it would loop out of the repetitive loop. However, since the macro is busy in the code, I cannot push the button in the user form. Does anyone have any ideas on how a user can intervene to stop the code from the repetitive loop? The userform is just an idea, but anything that works would be great. Thanks for any help! Mike |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Tim,
I can use a global flag, but then I would need the Error Handler & Resume logic in EACH procedure that I call. Is there a way that I can avoid that? Thanks! "Tim Williams" wrote: You could always set a [global] flag in the error handler, and then use that to signal to other procedures to tidy up and then exit. -- Tim Williams Palo Alto, CA "Mike" wrote in message ... I found that the following line works well: Resume Next This, however, will only go to the next line in the CURRENT procedure. Is there a way to go back to the current line in any procedure (especially a CALLED procedure)? Thanks! "Mike" wrote: This is almost exactly what I need! If I hit the ESC key and need to finish up my loop (for some cleanup), is there a way to go back into the loop and finish up the current iteration. Essentially, I need to set a trigger "GetOutOfLoop" by pushing the ESC key and continue at the current line until the end of the loop. Here are the notes from the help about EnableCancelKey: On Error GoTo handleCancel Application.EnableCancelKey = xlErrorHandler MsgBox "This may take a long time: press ESC to cancel" For x = 1 To 1000000 ' Do something 1,000,000 times (long!) ' do something here Next x handleCancel: If Err = 18 Then MsgBox "You cancelled" End If "Tim Williams" wrote: Check Help for: EnableCancelKey Tim "Mike" wrote in message ... I have a repetitive loop in a macro that I want to run repeatedly until the user decides to stop it. I tried having a non-modal userform with a toggle button which when pushed, it would loop out of the repetitive loop. However, since the macro is busy in the code, I cannot push the button in the user form. Does anyone have any ideas on how a user can intervene to stop the code from the repetitive loop? The userform is just an idea, but anything that works would be great. Thanks for any help! Mike |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hit the escape key
-- Regards, Tom Ogilvy "Mike" wrote in message ... I have a repetitive loop in a macro that I want to run repeatedly until the user decides to stop it. I tried having a non-modal userform with a toggle button which when pushed, it would loop out of the repetitive loop. However, since the macro is busy in the code, I cannot push the button in the user form. Does anyone have any ideas on how a user can intervene to stop the code from the repetitive loop? The userform is just an idea, but anything that works would be great. Thanks for any help! Mike |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Syntax for stopping a Do Loop? | Excel Discussion (Misc queries) | |||
Convert repetitive IF statements to array loop? | Excel Programming | |||
Stopping Code from Running whilst in Loop... | Excel Programming | |||
message without stopping execution? | Excel Programming | |||
Dynamic execution of a loop | Excel Programming |