Error when user clicks "no"

J

JT

Following is the code used to attach an Excel file to an Outlook message.
Occassionally, users will click "NO" when they get the outlook message. I
would like to put them in a loop that forces them to click "YES"

This code works well the first time. When they click "NO" it throws the
code to the error handler. Then the macro tries to re-send the attachment a
second time. If you click "NO" a second time, it doesn't go to the error
handler but instead produces a run time error. The run-time error is as
follows: General Mail Failure. Quit Microsoft Office Excel, re-start the
mail system and try again.

' the code does stuff

DoMore:

On Error GoTo errmsg

ActiveWorkbook.SendMail Recipients:="(email address)", Subject:=FileName


ActiveWorkbook.Close (True)

msgbox "Your file has been sent for processing"

' the code does more stuff

Exit Sub

errmsg:
msgbox "You have clicked the NO button. You must click YES to send your
file."
Err.Clear
GoTo DoMore

Any suggestions or ideas on changing the code would be appreaciated. Thanks
for all of the help with this issue.
 
R

Ron de Bruin

Try to use also this in the errmsg:

On Error GoTo 0


Sub test()
On Error Resume Next
ActiveWorkbook.SendMail "(e-mail address removed)", _
"This is the Subject line"
On Error GoTo 0
End Sub
 
J

Jim Thomlinson

Without seeing more code I can not fix the error, so here is a general
explanation of what is going on. When code is running a procedure it is in
normal execution mode until it hits an error and then it switches to error
mode. The exection will continue in error mode until the key word resume is
encountered. When code is in error mode it can not deal with any new errors
until the previous error is dealt with (using resume). So your code exits
normal exectution when the error is encountered and never resumes normal
exectution. The next error can not be handled becuase the code is in error
mode...
 
I

Ingolf

Hello JT,

use 'Resume' instead of 'GoTo DoMore'. This will terminate the ongoing
error handling and get you back to 'normal' macro execution. Error
handling within an ongoing error handling process is not an option.
This will always produce a run time error.

Regards,
Ingolf
 

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