Te envíe el archivo a tu mail con la solución, aca tienes un extracto de lo que se debe colar en el módulo, no obstente en el link http://www.programarexcel.com/2013/08/formulario-de-alerta-y-envio-de-mail.html existe un ejemplo, que hace lo que tu quieres, el archivo se fija en las fechas y sale un aviso en pantalla y envía un mail.
Public msj As String
Sub Aviso()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
If SheeAts("Ejecu").Cells(5, 7) = Empty And Sheets("Ejecu").Cells(5, 6).Value - 30 <= Date Then
msj = "Recolección 1"
UserForm1.Show
Sdm = SendMail_mail()
End If
If Sheets("Ejecu").Cells(6, 7) = Empty And Sheets("Ejecu").Cells(6, 6).Value - 30 <= Date Then
msj = "Recolección 2"
UserForm1.Show
Sdm = SendMail_mail()
End If
If Sheets("Ejecu").Cells(9, 7) = Empty And Sheets("Ejecu").Cells(9, 6).Value - 30 <= Date Then
msj = "Limpieza 5"
UserForm1.Show
Sdm = SendMail_mail()
End If
If Sheets("Ejecu").Cells(10, 7) = Empty And Sheets("Ejecu").Cells(10, 6).Value - 30 <= Date Then
msj = "Separado 6"
UserForm1.Show
Sdm = SendMail_mail()
End If
If Sheets("Ejecu").Cells(11, 7) = Empty And Sheets("Ejecu").Cells(11, 6).Value - 30 <= Date Then
msj = "Secado 7"
UserForm1.Show
Sdm = SendMail_mail()
End If
If Sheets("Ejecu").Cells(12, 7) = Empty And Sheets("Ejecu").Cells(12, 6).Value - 30 <= Date Then
msj = "Embolsado 8"
UserForm1.Show
Sdm = SendMail_mail()
End If
If Sheets("Ejecu").Cells(13, 7) = Empty And Sheets("Ejecu").Cells(13, 6).Value - 30 <= Date Then
msj = "Etiquetado 9"
UserForm1.Show
Sdm = SendMail_mail()
End If
Application.DisplayAlerts = False
Application.ScreenUpdating = True
End Sub
Visita: www.programarexcel.com