Sent status "Done" VBA

cynthixie

New Member
Joined
Aug 17, 2022
Messages
12
Office Version
  1. 2019
Platform
  1. Windows
Hi! Excuse my ignorance but I would like to add a "sent status" column. When the message have been sent, then in column I = "Done"

1660822391028.png

Here is my code:


Sub Mail()

Dim objOutlook As Object
Set objOutlook = CreateObject("Outlook.Application")
Dim objEmail As Object
Set objEmail = objOutlook.CreateItem(oMailItem)
Dim strMailBody As String
Dim Cel As Range

For Each Cel In Sheets("MS_Data").Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)

If Cel.Offset(0, 8).Value = "y" Then

Set objEmail = objOutlook.CreateItem(oMailItem)

StrMailSubject = ThisWorkbook.Sheets("Mail_Details").Range("A2").Text
strMailBody = "<BODY style='font-size:11pt;font-family:Calibri(Body)'>" & ThisWorkbook.Sheets("Mail_Details").Range("B2").Text & "</BODY>"
strMailBody = Replace(strMailBody, Chr(10), "<br>")

strFolder = "C:\Users\CIOTTIC\OneDrive - IAEA\Desktop\AL TEST"

strISO = Cel.Offset(0, 1).Value
strSalutation = Cel.Offset(0, 2).Value
strEmail = Cel.Offset(0, 3).Value
strCC = Cel.Offset(0, 4).Value
strFile = Cel.Offset(0, 5).Value
strFile2 = Cel.Offset(0, 6).Value
strFile3 = Cel.Offset(0, 7).Value
'
StrMailSubject = Replace(StrMailSubject, "<ISO>", strISO)
strMailBody = Replace(strMailBody, "<Salutation>", strSalutation)

With objEmail
.To = CStr(strEmail)
.CC = CStr(strCC)
.Subject = StrMailSubject
.BodyFormat = olFormatHTML
.Display
.Attachments.Add strFolder & "\" & strFile
.Attachments.Add strFolder & "\" & strFile2
.Attachments.Add strFolder & "\" & strFile3
.HTMLBody = strMailBody & .HTMLBody
End With

End If
Next Cel

MsgBox "All the mails have been display successfully"

End Sub


Thank you and best regards!
Cynthia
 

Excel Facts

How to change case of text in Excel?
Use =UPPER() for upper case, =LOWER() for lower case, and =PROPER() for proper case. PROPER won't capitalize second c in Mccartney
Before "Next Cel" you could add something like
VBA Code:
Cel.Offset(0, 9).Value = True
 
Upvote 0
Before "Next Cel" you could add something like
VBA Code:
Cel.Offset(0, 9).Value = True
Thank you nemmi, it works but now the emails are not displayed/sent. only "true" appears in column I.
 
Upvote 0
Sorry, think that line should be before the "end If" Offset(0, 7) should be "J"
 
Upvote 0
Hi, how about:
VBA Code:
End With     
        Cel.Offset(0, 9).Value = "DONE" 'Column J
    End If
Next Cel
 
Upvote 0
Solution

Forum statistics

Threads
1,214,959
Messages
6,122,476
Members
449,087
Latest member
RExcelSearch

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