Skip to main content

¿Cómo enviar un correo electrónico si se ha cumplido la fecha de vencimiento en Excel?

Author: Siluvia Last Modified: 2025-06-04

Como se muestra en la captura de pantalla a continuación, si la fecha de vencimiento en la columna C es menor o igual a 7 días (por ejemplo, la fecha actual es 2017/9/13), se envía un correo electrónico al destinatario especificado en la columna A y el contenido especificado en la columna B se muestra en el cuerpo del correo. ¿Cómo podría lograrlo? Este artículo proporciona un código VBA para ayudarte a realizar esta tarea.

sample data

Enviar correo electrónico si se cumple la fecha de vencimiento con código VBA


Enviar correo electrónico si se cumple la fecha de vencimiento con código VBA

Por favor, sigue los siguientes pasos para enviar un recordatorio por correo electrónico si se ha cumplido la fecha de vencimiento en Excel.

1. Presiona simultáneamente las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic for Applications.

2. En la ventana de Microsoft Visual Basic for Applications, haz clic en Insertar > Módulo. Luego copia y pega el siguiente código VBA en la ventana del Módulo.

Código VBA: Enviar correo electrónico si la fecha de vencimiento está próxima en Excel

Public Sub CheckAndSendMail()
'Updated by Extendoffice 2018/11/22
    Dim xRgDate As Range
    Dim xRgSend As Range
    Dim xRgText As Range
    Dim xRgDone As Range
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xLastRow As Long
    Dim vbCrLf As String
    Dim xMailBody As String
    Dim xRgDateVal As String
    Dim xRgSendVal As String
    Dim xMailSubject As String
    Dim i As Long
    On Error Resume Next
    Set xRgDate = Application.InputBox("Please select the due date column:", "KuTools For Excel", , , , , , 8)
    If xRgDate Is Nothing Then Exit Sub
    Set xRgSend = Application.InputBox("Please select the recipients?email column:", "KuTools For Excel", , , , , , 8)
    If xRgSend Is Nothing Then Exit Sub
    Set xRgText = Application.InputBox("Select the column with reminded content in your email:", "KuTools For Excel", , , , , , 8)
    If xRgText Is Nothing Then Exit Sub
    xLastRow = xRgDate.Rows.count
    Set xRgDate = xRgDate(1)
    Set xRgSend = xRgSend(1)
    Set xRgText = xRgText(1)
    Set xOutApp = CreateObject("Outlook.Application")
    For i = 1 To xLastRow
        xRgDateVal = ""
        xRgDateVal = xRgDate.Offset(i - 1).Value
        If xRgDateVal <> "" Then
        If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
            xRgSendVal = xRgSend.Offset(i - 1).Value
            xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
            vbCrLf = "<br><br>"
            xMailBody = "<HTML><BODY>"
            xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
            xMailBody = xMailBody & "Text : " & xRgText.Offset(i - 1).Value & vbCrLf
            xMailBody = xMailBody & "</BODY></HTML>"
            Set xMailItem = xOutApp.CreateItem(0)
            With xMailItem
                .Subject = xMailSubject
                .To = xRgSendVal
                .HTMLBody = xMailBody
                .Display
                '.Send
            End With
            Set xMailItem = Nothing
        End If
    End If
    Next
    Set xOutApp = Nothing
End Sub

Notas: La línea If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then en el código VBA significa que la fecha de vencimiento debe ser mayor a 1 día y menor o igual a 7 días. Puedes cambiarla según sea necesario.

3. Presiona la tecla F5 para ejecutar el código. En el primer cuadro de diálogo emergente de Kutools for Excel, selecciona el rango de la columna de fechas de vencimiento y luego haz clic en el botón Aceptar. Ver captura de pantalla:

vba code to select the due date column

4. Luego aparecerá el segundo cuadro de diálogo de Kutools for Excel, selecciona el rango de la columna correspondiente que contiene las direcciones de correo electrónico de los destinatarios y haz clic en el botón Aceptar. Ver captura de pantalla:

 vba code to select the recipients’ email addresses

5. En el último cuadro de diálogo de Kutools for Excel, selecciona el contenido que deseas mostrar en el cuerpo del correo electrónico y luego haz clic en el botón Aceptar.

vba code to select the content you want to display in the email body

Luego, se creará automáticamente un correo electrónico con el destinatario, asunto y cuerpo especificados si la fecha de vencimiento en la columna C es menor o igual a 7 días. Haz clic en el botón Enviar para enviar el correo electrónico.

an email is created  with the specified recipient, subject and body listed out if the due date

Notas:

1. Cada correo electrónico creado corresponde a una fecha de vencimiento. Por ejemplo, si hay tres fechas de vencimiento que cumplen con los criterios, se crearán automáticamente tres mensajes de correo electrónico.

2. Este código no se activará si no hay fechas que cumplan con los criterios.

3. El código VBA solo funciona cuando usas Outlook como tu programa de correo electrónico.

a screenshot of kutools for excel ai

Descubre la Magia de Excel con Kutools AI

  • Ejecución Inteligente: Realiza operaciones en celdas, analiza datos y crea gráficos, todo impulsado por comandos simples.
  • Fórmulas Personalizadas: Genera fórmulas adaptadas para optimizar tus flujos de trabajo.
  • Codificación VBA: Escribe e implementa código VBA sin esfuerzo.
  • Interpretación de Fórmulas: Comprende fórmulas complejas con facilidad.
  • Traducción de Texto: Supera las barreras del idioma dentro de tus hojas de cálculo.
Potencia tus capacidades de Excel con herramientas impulsadas por IA. ¡Descarga Ahora y experimenta una eficiencia como nunca antes!

Artículos relacionados:

Las mejores herramientas de productividad para Office

🤖 Kutools AI Aide: Revoluciona el análisis de datos basado en: Ejecución inteligente | Generar código | Crear fórmulas personalizadas | Analizar datos y generar gráficos | Invocar Funciones mejoradas
Funciones populares: Buscar, resaltar o marcar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda de varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Alternar el estado de visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas para combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y más

Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...


Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo

  • Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
  • ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!