Excel 10 how to send individual rows by email

danahoffman

New Member
Joined
Mar 15, 2014
Messages
24
G'Day to the List
1, Have Excel 2010 Spreadsheet with 300+ Rows of data each row is for a different individual with different email addresses.columns C-J in the body of email.
3. Have looked at VBA Macro code from every Excel site I can find, and have not found anything which will include columns C-J in bode of email now as attachment.
4. This is my first experience with VBA Macros with is probably 50% of problem.

dana hoffman
Colorado Emergency Prepared partnership
Denver, Colorado
303-863-9600
 
Looks like you have some exposure to VBA, use a for-each loop and for the outlook mail object .body use the Range("Cx:Jx), x being the row number.............n=1 to lastrow.
 
Upvote 0
Svkroy - Thanks, but this is my first exposure to VBA code, and I do not have an understanding of what you just wrote. I'm hoping to reply to a message with some of the code I Used which did not work a second time.

I have NOT Found any code to date that will send the contents of the row: Columns C-J (1 row per person, Column A is Name, and Column B is email address)

Have found code that attaches an Excell file and some code that creates email but does not include row information column C-J. Below is some code that I hoped could be modified.

Thanks in advance for the help, dana
Works automatically send Excel File from each line of data
On 3/15/2014 send again and compile errors
Finally 3-14-2014 1148
NOTE Change back to Display
Sub Send_Row_Or_Rows_Attachment_2()
'Working in 2000-2013
'For Tips see: http://www.rondebruin.nl/win/winmail/Outlook/tips.htm

Now Compile Error On Error,

GoTo cleanup = Invalid Outside procedure
Dim OutApp As Object
Dim OutMail As Object
Dim rng As Range
Dim Ash As Worksheet
Dim Cws As Worksheet
Dim Rcount As Long
Dim Rnum As Long
Dim FilterRange As Range
Dim FieldNum As Integer
Dim NewWB As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long

On Error GoTo cleanup
Set OutApp = CreateObject("Outlook.Application")

With Application
.EnableEvents = False
.ScreenUpdating = False
End With

'Set filter sheet, you can also use Sheets("MySheet")
Set Ash = ActiveSheet

'Set filter range and filter column (column with e-mail addresses)
Set FilterRange = Ash.Range("A1:H" & Ash.Rows.Count)
FieldNum = 2 'Filter column = B because the filter range start in column A

'Add a worksheet for the unique list and copy the unique list in A1
Set Cws = Worksheets.Add
FilterRange.Columns(FieldNum).AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Cws.Range("A1"), _
CriteriaRange:="", Unique:=True

'Count of the unique values + the header cell
Rcount = Application.WorksheetFunction.CountA(Cws.Columns(1))

'If there are unique values start the loop
If Rcount >= 2 Then
For Rnum = 2 To Rcount

'If the unique value is a mail addres create a mail
If Cws.Cells(Rnum, 1).Value Like "?*@?*.?*" Then

'Filter the FilterRange on the FieldNum column
FilterRange.AutoFilter Field:=FieldNum, _
Criteria1:=Cws.Cells(Rnum, 1).Value

'Copy the visible data in a new workbook
With Ash.AutoFilter.Range
On Error Resume Next
Set rng = .SpecialCells(xlCellTypeVisible)
On Error GoTo 0
End With

Set NewWB = Workbooks.Add(xlWBATWorksheet)

rng.Copy
With NewWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With

'Create a file name
TempFilePath = Environ$("temp") & "\"
TempFileName = "Your data of " & Ash.Parent.Name _
& " " & Format(Now, "dd-mmm-yy h-mm-ss")

If Val(Application.Version) < 12 Then
'You use Excel 97-2003
FileExtStr = ".xls": FileFormatNum = -4143
Else
'You use Excel 2007-2013
FileExtStr = ".xlsx": FileFormatNum = 51
End If

'Save, Mail, Close and Delete the file
Set OutMail = OutApp.CreateItem(0)

With NewWB
.SaveAs TempFilePath & TempFileName _
& FileExtStr, FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = Cws.Cells(Rnum, 1).Value
.Subject = "CEPP – Request your Verification or Changes to your Emergency Contact Info."
.Attachments.Add NewWB.FullName
.Body = "Hi there"
.Send 'Or use Send
End With
On Error GoTo 0
.Close savechanges:=False
End With

Set OutMail = Nothing
Kill TempFilePath & TempFileName & FileExtStr
End If

'Close AutoFilter
Ash.AutoFilterMode = False

Next Rnum
End If

cleanup:
Set OutApp = Nothing
Application.DisplayAlerts = False
Cws.Delete
Application.DisplayAlerts = True

With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
 
Upvote 0
Remove all these code and re-run

cleanup:
Set OutApp = Nothing
Application.DisplayAlerts = False
Cws.Delete
Application.DisplayAlerts = True

&

On Error GoTo cleanup

Now check if there is an error, if any thats the actual impediment. Let me know.
 
Upvote 0
Deleted specified lines now NEW Error

Compile Error
CreateObject ("Outlook.Application")
I then deleted:
_____________________
Ran and new error:


.EnableEvents = False (deleted)
Next error : .ScreenUpdating = False (I deleted) Then next error is END With. Seems that this code will never run. Your thoughts greatly appreciated.
dana
 
Upvote 0
Hi dana,

Can you please post the file.............what is pending, i believe is Rows C:J being copied to a new sheet and mailed as an attachment............
 
Upvote 0
SVKROY,
Here are links to the 3 files,
1. Excel 10 sample spreadsheet: http://www.investigationsdenver.com/files/2014-03-15email2.xlsx
2. CODE That partially worked and that does not work at all: http://http://www.investigationsdenver.com/files/3-14sendExcelfile.pdf
3. Ron De Bruin code that worked partially now will not work at all: http://www.investigationsdenver.com/files/RonDebrunoSendExcelcode.pdf

One of these when I worked sent emails correctly but included the information in that individual's row as an Excel attachment. I need to send the information from Columns D_J in each line.
Thanks for your assistance, it's appreciated.
dana
dana@investigationsdenver.com
 
Upvote 0

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top