Aviso desde excel (en pantalla o por email) cuando llegue una determinada fecha

En una hoja excel tengo una serie de tareas con su respectiva fecha de realización. Necesito que excel me envíe un mensaje a mi correo electrónico o que me salga un aviso en pantalla (lo que sea más fácil) antes de llegar a esa fecha. ¿Es eso posible?

1 Respuesta

Respuesta
1

Si es posible, las dos cosas, vamos por la más fácil, debes poner en thisworkbook el siguiente código que se ejecute al abrir

Private Sub Workbook_Open()
If Date = CDate(Date) Then MsgBox ("Hoy es 29/08/2013"), vbInformation, "AVISO"
End Sub

Visita www.programarexcel.com encontrarás macros que te pueden servir a realizar tu proyecto en Excel.

Muchas gracias por la respuesta. Pero no me he explicado bien. Yo tengo en la columna F fechas para futuras revisiones. En la celda B1 tengo la fecha actual (que se actualiza automáticamente). Lo que quiero es que cuando se aproxime la fecha actual (B1) a una de las fechas de la columna F me aparezca una aviso en pantalla. Para ser mas explicito, que me aparezca un aviso 30 días antes que se cumpla una fecha. Con el formato condicional ya se me cambian de color las fechas pero también quiero que me salga un mensaje y si por ejemplo hay dos o mas fechas iguales que también me aparezcan 2 o mas avisos y si es posible con mensajes distintos, específicos para cada revisión a la cual pertenece la fecha.

Sube tu archivo desde www.programarexcel.com/p/contacto.html por favor pon lo que requieres lo más detallado posible así comprendo lo que quieres hacer.

Ya he subido el archivo, te pego la explicación también aquí:

Hola, el archivo excel contiene en la columna F una serie de fechas. Me gustaría que 30 días antes de que se alcance cada fecha me salga un mensaje en la pantalla, por ejemplo en la celda F5 está la fecha 31.07.2014, yo quiero que desde 30.06.2104 hasta dicha fecha me aparezca un mensaje que diga "Mantenimiento 1". Otro ejemplo sería para las celdas F9, F10, F11 aparece la fecha 31.08.2014, me gustaría que desde el 31.07.2014 me aparezcan tres mensajes diferentes "Producción 5", "Lavado 6" y "Montaje 7". También, siempre que sea posible, que al meter la fecha de realización, en la columna "G" deje de salir el mensaje de aviso. Gracias, un saludo

Lo veo y te envío respuesta también puedEs enviar mail te lo configuro para aviso para cuando habrás excel y mAnde mail por si no abres archivo.

Mientras visita www.programarexcel.com puEdes descargar ejemplos de macros gratis que te pueden servir

Eso sería perfecto, mil gracias

Estoy viendo tu archivo, pero en el formulario que completaste no enviaste tu mail, no te puedo responder, por favor www.programarexcel.com/p/contacto.html ingresa tu mail asi te puedo enviar archivo.

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas