'Auto restart a macro to run once per day

I need to send reminders 7 days before a certain deadline.

With help I managed to create this code:

Private Sub Workbook_Activate()
  
    Dim i As Long
    Dim OutApp, OutMail As Object
    Dim strto, strcc, strbcc, strsub, strbody As String
        
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    Set OutMail = OutApp.CreateItem(0)
        
    For i = 2 To Range("e65536").End(xlUp).Row
        If Cells(i, 9) <> "Y" Then
            If Cells(i, 5) - 7 < Date Then
                    
                strto = Cells(i, 7).Value 'email address
                strsub = Cells(i, 1).Value & " " & Cells(i, 2).Value & " compleanno il " & Cells(i, 5).Value 'email subject
                strbody = "Il compleanno di " & Cells(i, 1).Value & " " & Cells(i, 2).Value & " sarà il " & Cells(i, 5).Value & vbNewLine 'email body
                    
                With OutMail
                    .To = strto
                    .Subject = strsub
                    .Body = strbody
                    .Send 
                End With
                    
                Cells(i, 8) = "Mail Sent " & Now()
                Cells(i, 9) = "Y"
                    
            End If
        End If
    Next
        
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

I have to start it manually every day because even if the deadline is updated the macro doesn't restart by itself.

I tried replacing Sub Workbook_Activate() with Sub Workbook_SelectionChange(ByVal Target As Range).



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source