Regresar a la Pagina de Inicio

18 ago. 2011

alertas de fechas con excel

Un lector recién me ha solicitado ayuda sobre como hacer para que Excel nos dé una alerta si la fecha del sistema coincide con alguna ingresada en el libro. Es interesante y muy útil saber sobre esto y como existen un par de formas para desarrollarlo decidí levantar una entrada sobre el tema.
Con Excel siempre nos encontramos ante una disyuntiva: ¿lo hacemos con o sin macros? Eso dependerá de las necesidades y características del trabajo a realizar, por lo cual analizaremos ambas.
Vamos primero sin macros: En A1 colocamos la "fecha de aviso", la que Excel deberá analizar y avisarnos si coincide con la fecha del sistema:
en A1 pusimos 18/08/2011. si esa fecha coincide con la actual, haremos que Excel avise con un mensaje
[+/-] Ver el resto / Ocultar

16 comentarios:

Damian Omar Silva dijo...

n de la r: olvidé postearlo, pero sería conveniente que en la celda en la cual ingresemos la fecha en cuestión, sea aplicada la "Validación de Datos". De esta forma evitamos que el usuario (o nosotros mismos) se equivoque y ponga un valor cualquiera, distinto al de una fecha.

edwin arley delgado dijo...

Hola damian como hago para que esta macro se active, ya que digito el codio y para que funcione debo correrlo desde la ventana de visual basic. como hacer para que cuando coincida la fecha salga el mensaje automaticamente.

Damian Omar Silva dijo...

te vas a visual basic y desde el explorador de objetos haces doble click sobre la hoja en donde ingresarás la fecha, para abrir la ventana de código de esa hoja. Luego seleccionas el evento:

Private Sub Worksheet_Change(ByVal Target As Range)
End Sub

Bien: ese evento se activa cada vez que se produzca un cambio en cualquier celda de la hoja. Supongamos que a la fecha la ingresas en A1, entonces el código dentro de ese Sub te quedaría:
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address="$A$1" then
if target.value <> "" then
if isdate(target.value) then
if target.value = fecha then
'aqui aplicas el codigo
end if
end if
end if
end if
End Sub

habrás visto que anidé 4 if, de forma sencilla:
primero pregunto que el cambio se haya realizado en la celda A1 (que es donde ingresas la fecha)
segundo pregunto que haya algún valor en A1
tercero consulto si ese valor es una fecha
y cuarto: si la fecha coincide, se ejecuta el código que tengas ahí dentro.

avisame si te sirve o necesitas que te pase algún archivo.
gracias por tus mensajes

Daniel Gonzalez dijo...

Buenas primero que todo excelente blog felicitaciones!!!. quisiera que me ayudaras con lo siguiente en la columna A tengo varias fechas de pago de intereses y en la columna B tengo la fecha del hoy del sistema y en la columna C tengo la comparacion entre A y B en donde son iguales me muestre la palabra ALERTA finalmente en la columna D tengo el pago de cada fecha. lo que quiero saber es como hacer para que en un formulario me muestre los pagos que se deben hacer ese dia y su valor al abrir el archivo de excel, es decir cuando abra excel me diga un cuadro tiene que pagar esto.
muchas gracias

Damian Omar Silva dijo...

Hola Daniel. Muy buena pregunta, ya que es un tema recurrente esto de las alertas de fechas en Excel. Ahora levanto un post al respecto y te paso el link.

Damian Omar Silva dijo...

Aqui te dejo el link: cualquier duda o modificación que necesites me avisas.
Suerte y gracias x tu mensaje

http://damianexcel.blogspot.com/2011/12/alertas-de-fechas-con-excel-parte-ii.html

Luis Ba dijo...

Hola Damian,
Felicitaciones por tu página, es de mucha utilidad.
En tu desarrollo de "alertas de fechas con Excel" hablas que generas un reporte y este es enviado por e-mail.
Quisiera saber como generar un reporte (Excel, pdf, etc..) de solo aquellas líneas que aparezca "ALERTA" y enviar éste último x e-mail cada vez que haya una nueva ALERTA, todo sin abrir Excel, sino cada vez que enciendo el ordenador.
Muchas gracias de antemano.

Luis

Damian Omar Silva dijo...

Luis: es imposible hacer que Excel realice alguna acción sin abrirlo previamente.
Quizás se podría colocar en la carpeta de Inicio del sistema operativo (un link) y que se ejecute dicho libro, y yqe luego de correr la macro se cierre.
Y para ayudarte con el problema, tendrías que enviarme el archivo, así veo bien la estructura del mismo y trabajo sobre el.

Angel Cabrera dijo...

Me parece interesantisimo este tema de las alertas y sobre todo de la parte II donde sale un formulario, me gustaria saber si puedo hacer el calculo pero sin que sea exactamente la fecha completa, es decir, quiero que me alerte sobre aniversarios mensuales (si se puede decir asi), me explico mejor, tengo fechas importantes que quiero recordar mensualmente, digamos que un acontecimiento ocurrio el 27/02/2011, para recordarlo anualmente seria el 27/02/2012, pero yo quiero recordarlo mensualmente, es decir, el 27/03/2011, el 27/04/2011 y asi, y quiero que excel lo haga por mi, y en un formulario, asi como lo muestras en alertas de fechas con excel II, es posible crear tal alerta?

Damian Omar Silva dijo...

Angel: si, es totalmente posible. Mira el siguiente código:
If IsDate(Range("a1").Value) Then
If Day(Now) = Day(Range("a1").Value) Then
MsgBox "hoy es " & Day(Now)
End If
End If
Explicación:
Con el primer If.. verifico que en A1 haya una fecha. Si es así, con el otro If... digo: si el día de hoy (now) es igual al día de la fecha en A1.... muestro un mensaje.
¿Se entiende? Lo probé y funciona correctamente, cualquier cosa me avisas.
Muchas gracias x tu mensaje

cecilia de la fuente ramirez dijo...

como agregar un alerta partiendo de una fecha, por ejemplo tengo una fecha y quiero un alerta 5 días después.

Damian Omar Silva dijo...

cecilia:
desconozco en que ámbito estás utilizando las fechas, pero por ejemplo puedo citarte: en A1 pones 12/01/2014 y en B1 =A1 + 5: el resultadoen B1 sería 17/01/2014, es decir, cinco días después del 12. Es sencillo, solamente una cuestión de sumas.
La misma lógica se aplicaría al formato condicional.

Anónimo dijo...

Como hago para que excell me envie un mail recordando un vencimiento de pago???

Damian Omar Silva dijo...

Bueno, el procedimiento sería el mismo, solo que indicando una condicional.
Supongamos que en A1 colocas: =HOY(), para de esta forma saber la fecha del sistema.
Luego, y antes del código que envía el correo, deberías colocar este código:
If range("a1").value = "17/08/2014" then
'aqui va el código que envia el mail
End If.

La cosa es sencilla: antes de enviar el correo preguntas si estamos o no en una fecha dada: si la fecha es la que coincide con tus registros, se envía el correo, caso contrario no pasa nada.
Espero que te sirva. Gracias x tu mensaje

Omar dijo...

Buena tardes me gustaría saber si hay alguna forma en que Excel me cambie de color o me mande una nota cuando un cliente cumpla años o el día de su profesión

Damian Omar Silva dijo...

Omar: tendría que ver en qué formado tienes las fechas, si están por columnas, filas, etc, etc. Pero supongamos que tu fecha está en A1.
Seleccionas esa celda, te vas a formato / formato condicional, de la primer lista desplegable eliges "formula" y luego ingresas en el cuadro esto: =Y(MES(A1)=MES(HOY());DIA(A1)=DIA(HOY())). Luego vas a las preferencias del fomato (color de fondo, lineas, fuente, etc) y das aceptar. Esa función que te pasé evalúa dos cosas: Que el MES y el DIA de A1 sean iguales al MES y DIA de la fecha del sistema. ¿Se entiende? Si esos dos datos de A1 coinciden con el mes y día de HOY() (fecha del sistema, se cumple la condición y, por lo tanto, se aplicará el formato seleccionado.

Publicar un comentario

Regresar a la Pagina de Inicio

ENTRADAS MAS RECIENTES (ULTIMAS 10)


las + vistas

10 ULTIMOS COMENTARIOS DE MIS LECTORES

Free counters!
blog de periodismo




GRAFICA RIO BRAVO
Serigrafia-Offset
Rosario - Santa Fe - Argentina
TE: 0341 4664028