Link to home
Start Free TrialLog in
Avatar of GSD4ME
GSD4ME

asked on

VB and mailing lists in Excel

I have a database of club members in an excel spreadsheet.
Data includes names, address and e-mail address

Every 6 months I want to e-mail EACH member with THEIR own details (name, address, membership details etc.)

I have written VB macros to extract the relevant info for each member from their set of data and format into what would bethe contents of a message to be sent.

Q: How do I SEND this block of data to that person's e-mail address using VB in EXCEL.
I don't want to 'drag' the data into Outlook, I want to 'push' it from Excel.
How do I do it? CAN I do it?
I do not want to have to change to a new database (access for example) as this has taken a long time to set up and not everyone in the organisation has Access but we do all have excel so the person who takes this job over from me will just be able to run the appropriate macro.

Any suggestions?
ASKER CERTIFIED SOLUTION
Avatar of Glowman
Glowman
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of gencross
gencross

Here is the Macro you will need.  This will use Outlook to send the mail.  If you do not have Outlook installed it will not work.  You will also need to modify the cell number of the email address of course, but you should be able to see what it is doing very easily.  Just open the VB Editor in your XLS and paste this in, modify it, then call.  Hope this helps.

Sub Email()
   
    Dim objOL As Object
    Dim objEMail As Object
   
    Set objOL = CreateObject("Outlook.Application")
   
    For x = 1 To Sheet1.Rows.Count
       
        If Sheet1.Cells(x, 1) <> "" Then
            Set objEMail = objOL.CreateItem(olMailItem)
            With objEMail
                .Recipients.Add Sheet1.Cells(x, 1) 'Cell of the email address
                .Subject = "Your details "
                .Body = "Details"
                'To send an attachment
                '.Attachments.Add ("C:\my documents\file.txt")
                .Send
            End With
            Set objEMail = Nothing
        End If
       
    Next
   
End Sub
You may also want to add an Exit For when the last row of data is hit then it will not continue to go through all rows.
Avatar of Richie_Simonetti
You could use this excellent free tool:
http://www.freevbcode.com/ShowCode.Asp?ID=109
Avatar of GSD4ME

ASKER

Many thanks - you were the closest to what I needed