hi my Dear ,I Hope to help me to Modify this code to Send all Emails one Time For all List From Column F .. With everything related to this email of data found from Column A To Column E
Code:
Option Explicit
Sub Sent()
Dim Wks As Worksheet
Dim OutMail As Object
Dim OutApp As Object
Dim myRng As Range
Dim list As Object
Dim item As Variant
Dim LastRow As Long
Dim uniquesArray()
Dim Dest As String
Dim strbody
Set list = CreateObject("System.Collections.ArrayList")
Set Wks = ThisWorkbook.Sheets("Total Supplier Cost ")
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
With Wks
For Each item In .Range("E2", .Range("E" & .Rows.Count).End(xlUp))
If Not list.Contains(item.Value) Then list.Add item.Value
Next
End With
For Each item In list
Wks.Range("A1:F" & Range("A" & Rows.Count).End(xlUp).Row).AutoFilter Field:=5, Criteria1:=item
'Set OutApp = CreateObject("Outlook.Application")
Set OutApp = Outlook.Application
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set myRng = Wks.Range("A1:C" & LastRow).SpecialCells(xlCellTypeVisible)
Dest = Cells(LastRow, "F").Value
strbody = "Dear ," & "<br>" & _
"See the Total Cost" & "<br/><br>"
With OutMail
.To = Dest
.CC = ""
.BCC = ""
.Subject = "Invoice From" & " " & Sheet8.Range("M1") & " " & "To" & " " & Sheet8.Range("N1")
.HTMLBody = strbody & RangetoHTML(myRng)
.Display
'.Send
End With
On Error GoTo 0
Next
On Error Resume Next
Wks.ShowAllData
On Error GoTo 0
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Function RangetoHTML(myRng As Range)
Dim TempFile As String
Dim TempWB As Workbook
Dim fso As Object
Dim ts As Object
Dim i As Integer
TempFile = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
myRng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=1
.Cells(1).PasteSpecial xlPasteAllUsingSourceTheme, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
For i = 7 To 12
With .UsedRange.Borders(i)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlMedium
End With
Next i
End With
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.readall
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")
TempWB.Close savechanges:=False
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function