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

Enviar correo electrónico si se ha cumplido Fecha de vencimiento con código VBA
Enviar correo electrónico si se ha cumplido Fecha de vencimiento con código VBA
Siga los pasos siguientes para enviar un recordatorio por correo electrónico cuando se haya alcanzado la fecha de vencimiento en Excel.
1. Pulse simultáneamente las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. En la ventana de Microsoft Visual Basic para Aplicaciones, haga clic en Insertar > Módulo. A continuación, copie y pegue el siguiente código VBA en la ventana del módulo.
Código VBA: enviar correo electrónico si se cierra Fecha de vencimiento 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 indica que la fecha de vencimiento debe ser mayor que hoy y menor o igual que dentro de 7 días. Puede ajustarla según sus necesidades.
3. Pulse la tecla F5 para ejecutar el código. En el primer cuadro de diálogo emergente Kutools para Excel, seleccione el rango de columnas de fecha de vencimiento y, a continuación, haga clic en el botón Aceptar. Vea la captura de pantalla:

4. A continuación, aparecerá el segundo cuadro de diálogo Kutools para Excel. Seleccione el rango de columnas correspondiente que contiene las direcciones de correo electrónico de los destinatarios y haga clic en el botón Aceptar. Vea la captura de pantalla:

5. En el último cuadro de diálogo Kutools para Excel, seleccione el contenido que desea incluir en el cuerpo del correo electrónico y, a continuación, haga clic en el botón Aceptar.

A continuación, 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 que 7 días. Haga clic en el botón Enviar para enviar el mensaje.

Notas:
1. Cada correo electrónico creado corresponde a un Fecha de vencimiento. Por ejemplo, si hay tres Fecha de vencimiento que cumplen 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 los criterios.
3. El código VBA solo funciona si utiliza Outlook como su cliente de correo electrónico.

Descubra la magia de Excel con KUTOOLS AI
- Ejecución inteligente: Realice operaciones en celdas, analice datos y cree gráficos con comandos sencillos.
- fórmulas personalizadas: Cree fórmulas a medida para optimizar sus flujos de trabajo.
- Programación en VBA: Escriba e implemente código VBA con facilidad.
- Interpretación de fórmulas: Entienda las fórmulas complejas con facilidad.
- Traducción de texto: Rompa las barreras del idioma directamente en sus hojas de cálculo.
Artículos relacionados:
- ¿Cómo enviar automáticamente un correo electrónico en función del valor de una celda en Excel?
- ¿Cómo enviar un correo electrónico mediante Outlook al guardar el libro en Excel?
- ¿Cómo enviar un correo electrónico cuando se modifica una celda específica en Excel?
- ¿Cómo enviar un correo electrónico al hacer clic en un botón en Excel?
- ¿Cómo enviar un recordatorio o notificación por correo electrónico cuando se actualiza el libro en Excel?
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos