Automatizar Alertas para Fechas de Vencimiento en Excel

El manejo de fechas en Excel es un tema fundamental, ya que prácticamente todos los reportes incluyen este tipo de datos. En este post, exploraremos cómo automatizar alertas para fechas de vencimiento utilizando fórmulas, funciones avanzadas y una potente macro para enviar correos electrónicos.

Automatizar Alertas para Fechas de Vencimiento en Excel (fórmulas, funciones y macros)

Suscríbete para más tutoriales

Descarga el archivo para practicar

Escribe tu correo electrónico para recibir gratis el archivo para practicar.

Caso 1: Resaltar Fechas Vencidas con Formato Condicional

El primer paso es identificar visualmente las fechas vencidas en un rango. Utilizamos la función HOY() para comparar las fechas de vencimiento con la fecha actual.

  1. Selecciona el rango de fechas de vencimiento.
  2. Ve a la ficha Inicio > Formato Condicional > Nueva Regla.
  3. Selecciona la opción “Usar una fórmula que determine las celdas para aplicar formato” e ingresa la fórmula:
  4. =B4<HOY() (Donde B4 es la celda de fecha de vencimiento.)
  5. Configura un formato de relleno, por ejemplo, naranja, para resaltar las fechas vencidas.

Esto permite destacar automáticamente las celdas donde la fecha ya ha pasado.


Caso 2: Resaltar Fechas Próximas a Vencer (7 días o menos)

Para gestionar fechas que están próximas a vencerse, necesitamos una lógica más compleja que incluya un intervalo de días:

  1. Crea una columna auxiliar llamada Días y utiliza esta fórmula:
  2. =B4-HOY() Esto calcula los días restantes para el vencimiento.
  3. Para resaltar las fechas dentro del rango de 7 días, aplica Formato Condicional con esta fórmula:
  4. =Y(B4>=HOY(),B4-HOY()<=7) (Donde B4 es la celda de fecha de vencimiento.)

Este formato te permitirá identificar fechas que están próximas a expirar de forma visual.


Caso 3: Clasificar Tareas por Estado

En este caso, añadimos una columna Estado para categorizar las tareas según el tiempo restante:

  1. Utiliza esta fórmula:
  2. =SI(B4<HOY(),"Vencido",SI(B4-HOY()<=7,"Próximo a Vencerse","En Curso"))
    • Vencido: Fechas menores a hoy.
    • Próximo a Vencerse: Fechas dentro de los próximos 7 días.
    • En Curso: Fechas con más de 7 días restantes.
  3. Aplica un filtro en la columna Estado para visualizar rápidamente las tareas según su categoría.

Caso 4: Enviar Alertas por Correo con Macros

Finalmente, llevamos la automatización un paso más allá utilizando una macro para enviar un correo con la lista de fechas vencidas. Esta macro utiliza VBA y requiere que Outlook esté configurado en tu computadora.

Pasos para Configurar la Macro:
  1. Ve a la ficha Desarrollador > Visual Basic.
  2. Crea un módulo y pega el código de la macro.
  3. Ejecuta la macro y revisa tu correo de Outlook. Recibirás un mensaje con la lista de tareas vencidas.
'Mis cursos de Excel, Macros y Power BI | https://www.deztaca.com
'Mi canal de YouTube | youtube.com/user/sergioacamposh
'Descarga mi add-in | addin.exceleinfo.com
'Obtén la Certificación Excel Expert | exceleinfo.com/certificacion-mos

Sub EnviarAlertasFechasVencidas()
Dim ws As Worksheet
Dim UltimaFila As Long
Dim fechaCelda As Range
Dim mensaje As String
Dim OutlookApp As Object
Dim Correo As Object

' Configurar la hoja activa
Set ws = ThisWorkbook.Sheets("Mail")

' Encontrar la última fila con datos en la columna B
UltimaFila = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row


' Construir el mensaje con las fechas vencidas
mensaje = "Se encontraron las siguientes fechas vencidas:" & vbNewLine & vbNewLine

For Each fechaCelda In ws.Range("B4:B" & UltimaFila)
    If IsDate(fechaCelda.Value) Then
        If fechaCelda.Value < Date Then
            
            mensaje = mensaje & "Tarea: " & fechaCelda.Offset(0, -1).Value & _
            " | Fecha: " & fechaCelda.Value & vbNewLine
       
            Cuenta = Cuenta + 1
        
        End If
    End If
Next fechaCelda

' Verificar si hay fechas vencidas

If Cuenta = 0 Then
    MsgBox "No hay fechas vencidas para enviar.", vbInformation
    Exit Sub
End If


'If mensaje = "Se encontraron las siguientes fechas vencidas:" & vbCrLf & vbCrLf Then
'    MsgBox "No hay fechas vencidas para enviar.", vbInformation
'    Exit Sub
'End If

' Configurar el envío del correo
Set OutlookApp = CreateObject("Outlook.Application")
Set Correo = OutlookApp.CreateItem(0)

Correo.To = "correo@ejemplo.com" ' Cambia por el correo destinatario
Correo.Subject = "Alerta de Fechas Vencidas"
Correo.Body = mensaje
Correo.Send

MsgBox "Correo enviado con éxito.", vbInformation

End Sub

Certifícate en Excel

Tienes experiencia en Excel y quieres mejorar tus oportunidades laborales? Obtén la Certificación Excel Expert avalada por Microsoft.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top