Create New Excel Then Add Data like example below
Create new sheet for data to format email like below
Go to tab developer click visual basic
Create new module
Copy and paste code in below
Sub CompileEmail()
lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox lastrow
'lastcolumn = Sheet3.Cells(1, Columns.Count).End(xlToLeft).Column
Workbooks.Add
j = 3
For i = 1 To lastrow
Range("A" & i).Value = Sheet1.Range("A" & j)
j = j + 1
Next
'Step 4 Turn off application alerts
Application.DisplayAlerts = False
'Step 5 Save the newly created workbook
a = "C:\Users\Public\Documents\Makro_Create_New_And_Email_" & Replace(Replace(Replace(Now, "/", "_"), " ", "_"), ":", "_") & ".xlsx"
ActiveWorkbook.SaveAs _
Filename:=a
'Step 6 Turn application alerts back on
Application.DisplayAlerts = True
Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.MailItem
Dim cell As Range
Dim Subj As String
Dim EmailAddr As String
Dim Recipient As String
Dim msg As String
'Create Outlook object
Set OutlookApp = New Outlook.Application
'condition the rows
If Sheet2.Range("B3").Value Like "*@*" Then
EmailAddr = "" & Sheet2.Range("B3")
End If
If Sheet2.Range("B4").Value Like "*@*" Then
EmailCC = "" & Sheet2.Range("B4")
End If
'add subject to message
Subj = "" & Sheet2.Range("B5")
'Compose message
msg = "" & Sheet2.Shapes("TextBox 1").TextFrame.Characters.Text
'Create Mail Item and view before sending
Set MItem = OutlookApp.CreateItem(olMailItem)
With MItem
.To = EmailAddr
.CC = EmailCC
.Subject = Subj
.Body = msg
.Display 'change to .send if you want to send it before review
'Attach File
.attachments.Add a
End With
End Sub
On the sheet1 add new button and assign macro name Compile Email()
here is the result
Demo Video

Posting Komentar