Ir al contenido principal

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

Comentarios

  1. 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.

    ResponderEliminar
  2. 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.

    ResponderEliminar
  3. 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

    ResponderEliminar
  4. 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

    ResponderEliminar
  5. 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.

    ResponderEliminar
  6. 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

    ResponderEliminar
  7. 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

    ResponderEliminar
  8. 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.

    ResponderEliminar
  9. 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?

    ResponderEliminar
  10. 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

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

    ResponderEliminar
  12. 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.

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

    ResponderEliminar
  14. 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

    ResponderEliminar
  15. 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

    ResponderEliminar
  16. 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.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

funciones: convertir numeros a letras con excel

En realidad hace tiempo que vienen consultándome sobre esto... quizás cinco o seis años . Debe ser una de las funciones mas buscadas de Excel, por lejos: la posibilidad de escribir: 1.534,63 y que en una celda aparezca magicamente "un mil quinientos treinta y cuatro c/15/100". Aquí les dejo una solución, basada en funciones , sin utilizar macros, la cual preparé exclusivamente para este Blog. A pesar de los millones de usuarios que requieren esta herramienta, no viene incorporada en Excel, debemos armarla nosotros mismos .  Luego de la imagen irá la explicación de como llegué a lograr esto, dado que es un proceso medianamente complejo , que utiliza tres o cuatro funciones básicas y requiere de varios pasos. así quedará nuestra planilla y siempre devolverá en letras el valor que ingresemos en A1 [+/-] Ver el resto / Ocultar Desde ya aclaro: esta no es " la forma " de hacerlo, simplemente es una mas, evitando el uso de macros. Sobre esta base, comencemos: 1) El núme

macros: como enviar mails desde Excel (vba)

Un gran amigo "on-line", Johan Moreno, de Colombia , me hizo llegar la inquietud de cómo enviar mails desde Excel . Si bien contaba con algunas líneas de código sobre el particular, decidí retomar mi ejemplo y adaptarlo mejor a las circunstancias. Hace unos minutos termino de remitirle un correo con la solución a Johan... desde Excel y con un archivo adjunto, mismo que transcribo a continuación para ayudar a todos con esta tarea. Veamos primero las dos formas principales de enviar mails: mediante Outlook o nuestro Web Mail ( yahoo, gmail, hotmail, etc, etc ) No soy usuario de Outlook en lo absoluto: no confío en los agujeros de seguridad que continuamente aparecen y, por otro lado, t eniendo a mi alcance una herramienta tan poderosa (y gratuita) como Gmail, la cual ahora también permite sincronizar los mensaje con la Pc para verlos offline (deben activarlo en "google labs") ... no creo que me haga usuario ni hoy ni mañana. Igualmente mas adelante daré una solució

buscarv con varios resultados

Es de las preguntas mas recurrentes que he tenido: ¿se puede lograr que la función BUSCARV() devuelva varios resultados? Si recordamos el uso de esta función, sabremos que la misma buscar en valor en el rango especificado, retornando un solo resultado. Si en la tabla tenermos varios registros iguales BUSCARV() solo nos devolverá el primero de ellos, omitiendo el resto. Entonces ¿se puede? Bueno, aplicando otra técnica sencilla que se me ocurrió al intentar solucionar el planteamiento de un lector... si, puedo hacerlo.... pero sin usar BUSCARV(). la idea es que coloquemos en E1 el código del producto a buscar y a partir de E2 nos devuelva todas las coincidencias de la tabla. [+/-] Ver el resto / Ocultar Vamos a necesitar una columna "auxiliar" para llevar a buen término este proyecto. Con macros el tema sería mas sencillo, pero aquí la cuestión es resolverlo con las funciones de Excel, sin VBA. Paso a paso: Como primer medida chequeamos que valores de la columna A coincide co