Question

This is actually my first time posting on this site - I really appreciate all the help I can get!

I have an Excel sheet that contains

  • clients emails,
  • their name,
  • their check dates and
  • and their processing date.

I want to send out a reminder email to them daily if their processing date is today. I've been successful in writing the code - but I haven't been able to bold parts of the email (ProcessingDate, CheckDate and Time).

Thank you so much again!

Here is my code:

Sub SendEm()
Dim i As Integer, Mail_Object, Email_Subject, o As Variant, lr As Long, MyDate As Date, Client As String, ProcessingDate As Date, CheckDate As Date, Time As Date, PayrollSpecialist As String
Dim Msg As Variant

lr = Sheets("DataSheet").Cells(Rows.Count, "S").End(xlUp).row
Set Mail_Object = CreateObject("Outlook.Application")
MyDate = Date
For i = 2 To lr
    Client = Sheets("DataSheet").Range("S" & i).Value
    ProcessingDate = Sheets("DataSheet").Range("B" & i).Value
    CheckDate = Sheets("DataSheet").Range("C" & i).Value
    Time = Sheets("DataSheet").Range("A" & i).Value
    PayrollSpecialist = Sheets("DataSheet").Range("D" & i).Value

        If Sheets("DataSheet").Range("B" & i).Value = MyDate Then
            Msg = "Dear" & " " & Client
            Msg = Msg & Sheets("Email").Range("B2").Value
            Msg = Msg & ProcessingDate & " "
            Msg = Msg & Sheets("Email").Range("B3").Value
            Msg = Msg & CheckDate
            Msg = Msg & ". " & Sheets("Email").Range("B4").Value & " "
            Msg = Msg & Time
            Msg = Msg & " " & Sheets("Email").Range("B5").Value & Sheets("Email").Range("B6").Value & vbNewLine & PayrollSpecialist
            With Mail_Object.CreateItem(o)
                .Subject = Sheets("Email").Range("A2").Value
                .To = Sheets("DataSheet").Range("T" & i).Value
                .Body = Msg
                '.Send
                .display 'disable display and enable send to send automatically
            End With
        End If
Next i
    MsgBox "E-mail successfully sent", 64
    Application.DisplayAlerts = False
    Set Mail_Object = Nothing
End Sub
Was it helpful?

Solution

You can use

  1. .htmlBody rather than .Body
  2. use html

So to bold ProcessingDate

Msg = Msg & "<b>" & ProcessingDate & "</b> "

For example with your code

         Msg = "Dear" & " " & Client
        'Msg = Msg & Sheets("Email").Range("B2").Value
        Msg = Msg & "<b>" & ProcessingDate & "</b> "
        'Msg = Msg & Sheets("Email").Range("B3").Value
        Msg = Msg & CheckDate
        'Msg = Msg & ". " & Sheets("Email").Range("B4").Value & " "
        Msg = Msg & Time
        'Msg = Msg & " " & Sheets("Email").Range("B5").Value & Sheets("Email").Range("B6").Value & vbNewLine & PayrollSpecialist
        With Mail_Object.CreateItem(o)
            .Subject = "tested"
            .To = "someone@hotmail.com"
            .htmlBody = Msg
            '.Send
            .display 'disable display and enable send to send automatically
        End With
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top