Auto Email when date in cell range reached.

Dave Ashcroft

New Member
Joined
May 24, 2008
Messages
24
Need help!!<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:eek:ffice:eek:ffice" /><o:p></o:p>
I have been addapting code from Ron De Bruin and anthonya2369 to come up with a spread sheet that emails three people when certification in training courses expire.<o:p></o:p>
I need the data to in columns with Name Employee # and the course expirey date; eg;<o:p></o:p>
<o:p></o:p>
<TABLE class=MsoNormalTable style="WIDTH: 304pt; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width=405 border=0 u1:str><COLGROUP><COL style="WIDTH: 69pt; mso-width-source: userset; mso-width-alt: 3364" width=92><COL style="WIDTH: 48pt" width=64><COL style="WIDTH: 56pt; mso-width-source: userset; mso-width-alt: 2706" width=74><COL style="WIDTH: 131pt; mso-width-source: userset; mso-width-alt: 6400" width=175><TBODY><TR style="HEIGHT: 12.75pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes"><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 69pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" width=92>A1<o:p></o:p>
</TD><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 48pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" width=64>B1<o:p></o:p>
</TD><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 56pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" width=75>C1<o:p></o:p>
</TD><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 131pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" width=175>D1<o:p></o:p>
</TD></TR><TR style="HEIGHT: 12.75pt; mso-yfti-irow: 1"><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt">Name<o:p></o:p>
</TD><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt">Badge#<o:p></o:p>
</TD><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt">Dri Lic exp<o:p></o:p>
</TD><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt">Expires IN<o:p></o:p>
</TD></TR><TR style="HEIGHT: 12.75pt; mso-yfti-irow: 2; mso-yfti-lastrow: yes"><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt">Ashcroft D<o:p></o:p>
</TD><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" u1:num>
69280<o:p></o:p>​
</TD><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0in; BACKGROUND: yellow; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" u1:num="39916">
4/13/2009<o:p></o:p>​
</TD><TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 0in; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt">Expiring Less Than 30 Days<o:p></o:p>
</TD></TR></TBODY></TABLE>

There are 25 course and 200 employees to be tracked. <o:p></o:p>
<o:p> </o:p>
<COLGROUP><COL style="WIDTH: 69pt; mso-width-source: userset; mso-width-alt: 3364" width="92"><COL style="WIDTH: 48pt" width="64"><COL style="WIDTH: 56pt; mso-width-source: userset; mso-width-alt: 2706" width="74"><COL style="WIDTH: 131pt; mso-width-source: userset; mso-width-alt: 6400" width="175">I am using Office 2003 and Outlook Express.<o:p></o:p>
At pressent I am using a worksheet for each course with the following code, but I am having several problems. I cant get vbTab to give the spacings in the rondebruins code, and when it sends the Emails it freezes the Reading Pain in OutlookExpress and locked up Outlook if my code had to start Outlookexpress. Any suggestions.<o:p></o:p>
<o:p></o:p>
ThisWorkbook code;<o:p></o:p>
<o:p> </o:p>
Private Sub Workbook_Open()<o:p></o:p>
<o:p> </o:p>
If Sheets("Sheet1").Cells(1, 2).Value <> Date Then<o:p></o:p>
Sheets("Sheet1").Cells(1, 2).Value = Date<o:p></o:p>
End If<o:p></o:p>
<o:p></o:p>
If Sheets("Sheet2").Cells(1, 2).Value <> Date Then<o:p></o:p>
Sheets("Sheet2").Cells(1, 2).Value = Date<o:p></o:p>
<o:p></o:p>
End If<o:p></o:p>
<o:p> </o:p>
End Sub<o:p></o:p>
<o:p> </o:p>
Sheet1 code<o:p></o:p>
<o:p> </o:p>
Private Sub Worksheet_Change(ByVal Target As Range)<o:p></o:p>
<o:p> </o:p>
Dim oCell As Range<o:p></o:p>
Dim strBody As String<o:p></o:p>
<o:p> </o:p>
If Target.Row <> 1 And Target.Column <> 1 Then<o:p></o:p>
Exit Sub<o:p></o:p>
End If<o:p></o:p>
<o:p> </o:p>
strBody = " Name " & Space(10) & " Badge # " & Space(10) & "Expire Date" & Space(10) & "Days to Expiration" & vbCrLf & vbCrLf<o:p></o:p>
<o:p> </o:p>
For Each oCell In Range("d7:d20")<o:p></o:p>
If oCell.Value <> "" Then<o:p></o:p>
strBody = strBody & _<o:p></o:p>
Left(oCell.Offset(0, -3).Value, 10) & Space(10) & oCell.Offset(0, -2) & Space(10 - Len(oCell.Offset(0, -2).Value)) & Space(10) & oCell.Offset(0, -1).Value & Space(10) & oCell.Value & vbCrLf<o:p></o:p>
End If<o:p></o:p>
Next oCell<o:p></o:p>
<o:p> </o:p>
Call Mail_Outlook_Express(ByVal strBody)<o:p></o:p>
<o:p> </o:p>
End Sub<o:p></o:p>
<o:p> </o:p>
Sub Mail_Outlook_Express(ByVal strBody As String)<o:p></o:p>
Dim Recipient As String, Subj As String, HLink As String<o:p></o:p>
Dim Recipientcc As String, Recipientbcc As String<o:p></o:p>
Dim msg As String<o:p></o:p>
Recipient = "ashcrodx"<o:p></o:p>
Recipientcc = ""<o:p></o:p>
Recipientbcc = ""<o:p></o:p>
Subj = "Driving Liecence Expired"<o:p></o:p>
msg = strBody<o:p></o:p>
<o:p></o:p>
msg = WorksheetFunction.Substitute(msg, vbNewLine, "%0D%0A")<o:p></o:p>
HLink = "mailto:" & Recipient & "?" & "cc=" & Recipientcc _<o:p></o:p>
& " " & " " & Recipientbcc & "&"<o:p></o:p>
HLink = HLink & "subject=" & Subj & "&"<o:p></o:p>
HLink = HLink & "body=" & msg<o:p></o:p>
ActiveWorkbook.FollowHyperlink (HLink)<o:p></o:p>
Application.Wait (Now + TimeValue("0:00:02"))<o:p></o:p>
Application.SendKeys "%s"<o:p></o:p>
End Sub<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
Sheet2 code<o:p></o:p>
<o:p> </o:p>
Private Sub Worksheet_Change(ByVal Target As Range)<o:p></o:p>
<o:p> </o:p>
Dim oCell As Range<o:p></o:p>
Dim strBody As String<o:p></o:p>
<o:p> </o:p>
If Target.Row <> 1 And Target.Column <> 1 Then<o:p></o:p>
Exit Sub<o:p></o:p>
End If<o:p></o:p>
<o:p> </o:p>
strBody = " Name " & Space(10) & " Badge # " & Space(10) & "Expire Date" & Space(10) & "Days to Expiration" & vbCrLf & Space(10) & vbCrLf<o:p></o:p>
<o:p> </o:p>
For Each oCell In Range("d7:d20")<o:p></o:p>
If oCell.Value <> "" Then<o:p></o:p>
strBody = strBody & _<o:p></o:p>
Left(oCell.Offset(0, -3).Value, 10) & Space(10) & oCell.Offset(0, -2) & Space(10 - Len(oCell.Offset(0, -2).Value)) & Space(10) & oCell.Offset(0, -1).Value & Space(10) & oCell.Value & vbCrLf<o:p></o:p>
End If<o:p></o:p>
Next oCell<o:p></o:p>
<o:p> </o:p>
Call Mail_Outlook_Express(ByVal strBody)<o:p></o:p>
<o:p> </o:p>
End Sub<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
Sub Mail_Outlook_Express(ByVal strBody As String)<o:p></o:p>
Dim Recipient As String, Subj As String, HLink As String<o:p></o:p>
Dim Recipientcc As String, Recipientbcc As String<o:p></o:p>
Dim msg As String<o:p></o:p>
Recipient = "ashcrodx"<o:p></o:p>
Recipientcc = ""<o:p></o:p>
Recipientbcc = ""<o:p></o:p>
Subj = "Work Permit Expired"<o:p></o:p>
msg = strBody<o:p></o:p>
<o:p></o:p>
msg = WorksheetFunction.Substitute(msg, vbNewLine, "%0D%0A")<o:p></o:p>
HLink = "mailto:" & Recipient & "?" & "cc=" & Recipientcc _<o:p></o:p>
& " " & " " & Recipientbcc & "&"<o:p></o:p>
HLink = HLink & "subject=" & Subj & "&"<o:p></o:p>
HLink = HLink & "body=" & msg<o:p></o:p>
ActiveWorkbook.FollowHyperlink (HLink)<o:p></o:p>
Application.Wait (Now + TimeValue("0:00:02"))<o:p></o:p>
Application.SendKeys "%s"<o:p></o:p>
'Application.Wait (Now + TimeValue("0:00:12"))<o:p></o:p>
'Application.Quit<o:p></o:p>
End Sub<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
 

Excel Facts

Highlight Duplicates
Home, Conditional Formatting, Highlight Cells, Duplicate records, OK to add pink formatting to any duplicates in selected range.

Forum statistics

Threads
1,203,632
Messages
6,056,439
Members
444,864
Latest member
Thundama

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