Report

VBA send email via Outlook using loop; No response when run [Solved]

Ask a question x.dominicraj 7Posts Thursday May 18, 2017Registration date June 1, 2017 Last seen - Last answered on May 29, 2017 at 10:56 AM by TrowaD
Hello,

the above code is not functional as described. Is there a way to check what is wrong? the screen does not show anything upon clicking the run button.

Thank you in advance.

Helpful
+0
plus moins
I don't see any code above. What about you?
Leave a comment
Helpful
+0
plus moins
Hi Ambucias,

Thank you for your response.

I am trying to write a VBA code to send auto email reminders from an excel sheet however I am getting some error. Below is the code:

Sub SendEmail()

Dim olapp As Outlook.Application
Set olapp = CreateObject("Outlook.Application")
Dim olmail As Outlook.MailItem
Set olmail = olapp.CreateItem(olMailItem)
Dim maildest As String
Dim i As Integer
For i = 2 To 5
maildest = ""
maildest = Cells(i, 5).Value
olmail.To = maildest
olmail.Subject = "is it running yet?"
olmail.Body = "A gentle reminder that XXX tasks are still pending"
olmail.Send

Next i

Range("A8").Select
Set olmail = Nothing
Set olapp = Nothing
End Sub


Could you kindly guide as to what is wrong with the code? The loop never functions.

Thank you and look forward to your help

Best,
Dominic
Leave a comment
Helpful
+0
plus moins
Hi x.dominicraj,

Try changing the following:
Dim olapp As Outlook.Application
into:
Dim olapp As Object

Dim olmail As Outlook.MailItem
into:
Dim olmail As Object

Set olmail = olapp.CreateItem(olMailItem)
into:
Set olmail = olapp.CreateItem(0)

When it is still not working try adding the line:
On Error GoTo 0
after the 'Next i' line.

Hope that helps.

Best regards,
Trowa
TrowaD 2263Posts Sunday September 12, 2010Registration date ModeratorStatus September 12, 2017 Last seen - May 23, 2017 at 11:45 AM
Hi x.dominicraj,

Ok, move the following code line:
Set olmail = olapp.CreateItem(0)

and place it below:
For i = 2 To 5

That line needs to be within the loop.

Best regards,
Trowa
Reply
x.dominicraj 7Posts Thursday May 18, 2017Registration date June 1, 2017 Last seen - May 23, 2017 at 11:51 AM
Hi TrowaD,

Thank you for your response.

The code now looks like this:

Sub SendEmail()

Dim olapp As Object
Set olapp = CreateObject("Outlook.Application")
Dim olmail As Object

Dim maildest As String
Dim i As Integer
For i = 2 To 5
Set olmail = olapp.CreateItem(0)
maildest = ""
maildest = Cells(i, 5).Value
olmail.To = maildest
olmail.Subject = "is it running yet?"
olmail.Body = "A gentle reminder that XXX tasks are still pending"
olmail.Send

Next i
On Error GoTo 0

Range("A8").Select
Set olmail = Nothing
Set olapp = Nothing
End Sub


Still shows the same error as mentioned above by me :

When I click the debug option it highlights the line : "olmail.To = maildest"

Any suggestions on this error?

Thanks.

Best,
Dominic
Reply
TrowaD 2263Posts Sunday September 12, 2010Registration date ModeratorStatus September 12, 2017 Last seen - May 23, 2017 at 12:24 PM
Hi x.dominicraj,

Are you sure the mail addresses in range E2:E5 are correct and still existing? Maybe try using the same address as in E2.

Also try to place
Set olmail = Nothing
at the end of the loop, so before 'Next i'

Besides that I'm out of suggestions.

At a last effort to help you out, here is a site with a lot of code examples for Outlook:
http://www.rondebruin.nl/win/s1/outlook/mail.htm

Do keep us posted on your findings.

Good luck and best regards,
Trowa
Reply
x.dominicraj 7Posts Thursday May 18, 2017Registration date June 1, 2017 Last seen - May 23, 2017 at 01:03 PM
Hi Trowa,

Set olmail = Nothing did the trick. The mail is going to all the contacts in the column.

Thank you so much for your help!

Best Regards,
Dominic
Reply
TrowaD 2263Posts Sunday September 12, 2010Registration date ModeratorStatus September 12, 2017 Last seen - May 29, 2017 at 10:56 AM
That's great! Thanks for the feedback Dominic.
Reply
Leave a comment

Member requests are more likely to be responded to.

Members can monitor the statuses of their requests from their account pages.

A CCM membership gives you access to additional options.

Not a member yet?

Sign up now. It takes less than a minute and is completely free!