¿Cómo enviar un correo electrónico si se ha cumplido la fecha de vencimiento en Excel?
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.
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:
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:
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.
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.
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.

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.
Artículos relacionados:
- ¿Cómo enviar automáticamente un correo electrónico basado en el valor de una celda en Excel?
- ¿Cómo enviar un correo electrónico a través de Outlook cuando se guarda el libro de trabajo en Excel?
- ¿Cómo enviar un correo electrónico si se modifica una celda específica en Excel?
- ¿Cómo enviar un correo electrónico si se hace clic en un botón en Excel?
- ¿Cómo enviar un recordatorio o notificación por correo electrónico si se actualiza el libro de trabajo en Excel?
Las mejores herramientas de productividad para Office
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!