Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / May 2008

Tip: Looking for answers? Try searching our database.

Macro that will add multiple emails based on a range of cell values

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Tysone - 27 May 2008 15:53 GMT
I posted this once already in microsoft.public.excel but I didn't get
an answer that really worked for me.  So hopefully putting it in
programming it will produce better results.  Anyway, sorry for the
double post...

================================

I need a macro (based on this data) that will basically look at one
column and if it says “Yes” put the email address in the email column
in the .bcc.  All the email addresses need to be in one email by the
way.  Here is what my data looks like starting in A4:

Yes    Job Title       1ema...@work.com
No      Job Title       2ema...@work.com
Yes    Job Title       3ema...@work.com
No      Job Title       4ema...@work.com

The list of emails is going to be variable too from month to month.

Thanks for the help,

Tyson
Ron de Bruin - 27 May 2008 16:02 GMT
I reply with this example in your other thread

Example for Outlook

You can do this for a sheet named "Sheet1"
In col A yes/no and in Col D the mail addresses

Use Display instead of Send to test the code

Sub Mail_small_Text_Outlook()
' Is working in Office 2000-2007
   Dim OutApp As Object
   Dim OutMail As Object
   Dim strbody As String
   Dim cell As Range
   Dim strto As String

   On Error Resume Next
   For Each cell In ThisWorkbook.Sheets("Sheet1") _
       .Range("D1:D100").Cells.SpecialCells(xlCellTypeConstants)
       If cell.Value Like "?*@?*.?*" And LCase(cell.Offset(0, -3).Value) = "yes" Then
           strto = strto & cell.Value & ";"
       End If
   Next cell
   On Error GoTo 0
   If Len(strto) > 0 Then strto = Left(strto, Len(strto) - 1)

   Set OutApp = CreateObject("Outlook.Application")
   OutApp.Session.Logon
   Set OutMail = OutApp.CreateItem(0)

   strbody = "Hi there" & vbNewLine & vbNewLine & _
             "This is line 1" & vbNewLine & _
             "This is line 2" & vbNewLine & _
             "This is line 3" & vbNewLine & _
             "This is line 4"

   On Error Resume Next
   With OutMail
       .To = "ron@debruin.nl"
       .CC = ""
       .BCC = strto
       .Subject = "This is the Subject line"
       .Body = strbody
       .Send 'or use .Display
   End With
   On Error GoTo 0

   Set OutMail = Nothing
   Set OutApp = Nothing
End Sub

Signature

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm

I posted this once already in microsoft.public.excel but I didn't get
an answer that really worked for me.  So hopefully putting it in
programming it will produce better results.  Anyway, sorry for the
double post...

================================

I need a macro (based on this data) that will basically look at one
column and if it says “Yes” put the email address in the email column
in the .bcc.  All the email addresses need to be in one email by the
way.  Here is what my data looks like starting in A4:

Yes    Job Title       1ema...@work.com
No      Job Title       2ema...@work.com
Yes    Job Title       3ema...@work.com
No      Job Title       4ema...@work.com

The list of emails is going to be variable too from month to month.

Thanks for the help,

Tyson
Tysone - 27 May 2008 16:52 GMT
Thank you Ron, this is exactly what I was looking for.

Tyson

> I reply with this example in your other thread
>
[quoted text clipped - 74 lines]
>
> Tyson
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.