PDA

View Full Version : Solved: Pick email address from cell in workbook



Gil
07-12-2009, 02:49 AM
Hello
I am using the following code "Application.Dialogs(xlDialogSendMail).Show" to start an email with a macro.This works fine by attaching the workbook file and adding the filename as the subject in the email. What can I add to select an email address from a cell in that workbook and inserting it into the "TO" box in Microsoft outlook

:beerchug:

mdmackillop
07-12-2009, 03:05 AM
Hi Gil
Welcome to VBAX
Can you post the whole of your code?

Gil
07-12-2009, 03:27 AM
This is the macro I am using
Sub sendlog()
'
' sendlog Macro
' Macro recorded 23/06/2009 by 803090680
'
'
Application.Dialogs(xlDialogSendMail).Show

End Sub

mdmackillop
07-12-2009, 03:34 AM
Sub sendlog()
Application.Dialogs(xlDialogSendMail).Show Range("A1")
End Sub

Gil
07-12-2009, 04:19 AM
That worked perfectly. I did not think it was going to be that straight forward. If not too much trouble may I ask how to add a CC from another cell reference.

mdmackillop
07-12-2009, 09:39 AM
Have a look at this page (http://www.codeforexcelandoutlook.com/excel-vba/send-email-from-excel/)

Gil
07-12-2009, 11:25 AM
Thank you for the reply & redirection. Not quite as straightforward as the original answer. Being a novice I will attempt but so far cant work it out.:help

mdmackillop
07-12-2009, 01:50 PM
Option Explicit

Sub eMailActiveDocument()
'Requires reference to Microsoft Outlook xx Object Library
Dim OL As Object
Dim EmailItem As Object
Dim Doc As Workbook

Application.ScreenUpdating = False
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Doc = ActiveWorkbook
Doc.Save
With EmailItem
.Subject = "Insert Subject Here"
.Body = "Insert message here" & vbCrLf & _
"Line 2" & vbCrLf & _
"Line 3"
.To = "User@Domain.Com" 'or cell reference
.cc = "Someone@vbax.com" 'or cell reference
.Importance = olImportanceNormal
.Attachments.Add Doc.FullName
.display 'Send
End With

Application.ScreenUpdating = True

Set Doc = Nothing
Set OL = Nothing
Set EmailItem = Nothing

End Sub

Gil
07-13-2009, 03:15 AM
Hello

Many thanks for your help and guisdance. From what you last sent me I have ended up with the following that seems to work ok. The 'subject' I am using a cell ref that has the filename added to it by formula.I took out these bits as they just appeared in the 'body' when the email displayed.

.Body = "Insert message here" & vbCrLf & _
"Line 2" & vbCrLf & _
"Line 3"

And this is what works for me


Option Explicit

Sub eMailActiveDocument()
'Requires reference to Microsoft Outlook xx Object Library
Dim OL As Object
Dim EmailItem As Object
Dim Doc As Workbook

Application.ScreenUpdating = False
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Doc = ActiveWorkbook
Doc.Save
With EmailItem
.Subject = Range("c28")
.Body = "" & vbCrLf
.To = Range("f4") 'or email address
.cc = Range("f6") 'or email address
.Importance = olImportanceNormal
.Attachments.Add Doc.FullName
.display 'Send
End With

Application.ScreenUpdating = True

Set Doc = Nothing
Set OL = Nothing
Set EmailItem = Nothing

End Sub

Best regards

Gil (the novice)