Results 1 to 10 of 23

Thread: how to send each row by email

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Administrator Admin's Avatar
    Join Date
    Mar 2011
    Posts
    1,123
    Rep Power
    10
    Hi Baris,

    Welcome to ExcelFox !!!

    Try this

    Code:
    Sub SendEmailRowByRow()
        
        Dim OutApp      As Object
        Dim OutMail     As Object
        Dim strBody     As String
        Dim LastRow     As Long
        Dim eMailIDs, i As Long
        Dim varBody
        
        Const StartRow  As Long = 2     '<<< adjust to suit
        
        
        If Not Application.Intersect(Range("I:I"), ActiveSheet.UsedRange) Is Nothing Then
            
            Set OutApp = CreateObject("Outlook.Application")
            Set OutMail = OutApp.CreateItem(0)
            
            LastRow = Range("I" & Rows.Count).End(xlUp).Row
            
            eMailIDs = Range("I" & StartRow).Resize(LastRow - StartRow + 1)
            
            For i = 1 To UBound(eMailIDs, 1)
                varBody = Range("a" & StartRow + i - 1).Resize(, 7).Value
                strBody = Join(Application.Transpose(Application.Transpose(varBody)), vbTab)
                On Error Resume Next
                With OutMail
                    .To = eMailIDs(i, 1) 'email from corresponding row goes here
                    .CC = ""
                    .BCC = ""
                    .Subject = "Subject"    '<< adjust subject line
                    .Body = strBody
                    'You can add a file like this
                    '.Attachments.Add ("C:\")
                    .Display
                    'or use .Send
    '                .Send
                End With
                On Error GoTo 0
            Next
        End If
        
        Set OutMail = Nothing
        Set OutApp = Nothing
        
    End Sub
    Cheers !

    Excel Range to BBCode Table
    Use Social Networking Tools If You Like the Answers !

    Message to Cross Posters

    @ Home - Office 2010/2013/2016 on Win 10 (64 bit); @ Work - Office 2016 on Win 10 (64 bit)

  2. #2
    Junior Member
    Join Date
    Aug 2012
    Posts
    14
    Rep Power
    0
    Quote Originally Posted by Admin View Post
    Hi Baris,

    Welcome to ExcelFox !!!

    Try this
    Hi,
    Thanks for the code but it sends email to the last person in the list only. (the last row I mean)
    If there are twenty individuals, how can we change it?

    Thanks in advance
    Baris

  3. #3
    Junior Member
    Join Date
    Sep 2012
    Posts
    3
    Rep Power
    0
    Hi, this is my first time using excelfox and I'm fairly new to VBA

    I would like to add a modified version of this code if you can help me out. I have already written code in an outlook macro that scrapes off excel attachments from emails in a specific folder, savesthe attachments to a folder on my computer, opens the saved attachments in excel, and filters the excel spreadsheet.

    Now, I need to map the person's name in column C to specific email adresses and send a message to them if column N has a value less than 5.

    Your help would be much appreciated!

Similar Threads

  1. Replies: 17
    Last Post: 07-15-2013, 09:56 PM
  2. Replies: 2
    Last Post: 05-23-2013, 08:08 AM
  3. How To Send Outlook Email Using VBA
    By mfaisalrazzak in forum Excel Help
    Replies: 7
    Last Post: 03-03-2013, 03:09 AM
  4. Send Outlook Email With Word Document
    By Murali K in forum Excel Help
    Replies: 2
    Last Post: 06-27-2012, 08:42 PM
  5. Send Lotus Notes Email Using VBA
    By ramakrishnan in forum Excel Help
    Replies: 1
    Last Post: 09-08-2011, 09:00 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •