Halt / Stop processing when a user selects Cancel

S

scott56hannah

Hi,

I have a routine that sends a group of emails based on a user action.

The user is presented with a Form that reports on the progress of sending
those emails...

I want to be able to give the user the option to Halt / Stop the sending of
those emails at anytime.

I have already tried a number of methods to get this working, but although I
am able to stop the actual processing the send mail routine in the back
ground continues to process.

The problem I think is that when the "Cancel" button is clicked it takes
control from the background process that has been called to send the mail....

Is there anyway I am able to stope background processing in Excel when this
cancel button is called.....and in addition to continue that processing in
the same place if the user elects to continue

I don't know if this is too confusing for anyone to help...but it would be
appreciated

Scott
 
P

Peter T

This is just for ideas, it's unlikely you'd want to do it quite like this
(put two buttons on a form) -

Private mbDoStuff As Boolean

Private Sub CommandButton1_Click() ' cancel button

If mbDoStuff Then
If MsgBox("Abort", vbYesNo) = vbYes Then
mbDoStuff = False
End If
End If

If Not mbDoStuff Then Unload Me

End Sub

Private Sub CommandButton2_Click()
Dim d As Double, dev As Long
mbDoStuff = True

dev = -1
Do While d < 123456 And mbDoStuff
d = Range("A1").Value
d = d + 1
Range("A1").Value = d
Me.Caption = d

If d > dev Then
DoEvents
dev = dev + 100
'aim to allow a DoEvents say every 0.1 to 0.5 sec's
' but not in every "quick" loop
End If
Loop

MsgBox d
End Sub


Generally aim to allow a DoEvents say every 0.1 to 0.5 seconds. No need to
check in every loop unless each loop involves a lengthy process, like
sending emails.

Regards,
Peter T
 
N

Nigel

I would use a function to mail one address at a time, then after each call
you can intercept the main calling program. I would not use 'Cancel' to
pause the process, 'Pause/Continue' would be better, that requires some
extra logic to store the current progress and resume at the last completed
mailing.

Hope this helps
 
S

scott56hannah

Nigel,

Yes that's what I am trying to do....but I have found that when the
Pause/Continue button is pressed it takes control of the form logic from the
SendMail routine that is underway....how can I return control of the logic to
that process ?

Scott
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top