Enviar E-mail desde Excel con datos de última fila añadida a mi hoja de Excel.

Tengo esta macro que he conseguido que me envíe un correo automáticamente desde Excel:

Sub Enviar_correo()
Dim Correo, OutlookApp As Object
With Application
    .EnableEvents = False
    .ScreenUpdating = False
End With
Set OutlookApp = GetObject("", "Outlook.Application")
If OutlookApp Is Nothing Then Set OutlookApp = CreateObject("Outlook.Application")
Set Correo = OutlookApp.CreateItem(0)
    With Correo
        .To = "[email protected]"
        .Subject = "PRUEBA"
        .Body = "PRUEBA"
        .Send
    End With
With Application
    .EnableEvents = True
    .ScreenUpdating = True
End With
End Sub

Ahora bien, dispongo una hoja en Excel a la que voy añadiendo, tanto un destinatario, como un subject, un body y UNA FECHA, todos organizados en columnas.

¿Es posible que cada vez que abra el libro de excel y apriete el botón, me recorra la hoja de excel y me envíe un correo (con los datos de la fila) cuando se cumpla la fecha especificada que tenemos en dicha hoja?

Es decir, abro el libro, añado un nuevo registro y le doy al botón. El botón me recorra todas las filas y me envié un correo por cada caso en el que la fecha se haya cumplido.

1 Respuesta

Respuesta
2

Revisa el siguiente artículo, ahí explico cómo enviar correos en base a una condición.

https://www.gerencie.com/enviar-correos-con-condicion-desde-outlook-con-excel.html 

Solamente cambia la condición por una fecha.

La macro:

Sub Enviar_Correos()
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Cells(i, "E").Value = "Pendiente" Then
Set dam = CreateObject("outlook.application").createitem(0)
dam.To = Cells(i, "B").Value 'Destinatarios
dam.Subject = "Recordatorio de seguimiento a pendientes"
dam.Body = "Estimado/a : " & Cells(i, "A").Value & vbCr & vbCr & _
"Le recordamos que tiene pendiente " & _
"el siguiente requerimiento : " & Cells(i, "C").Value & vbCr & vbCr & _
"Saludos cordiales"
End If
Next
MsgBox "Correos enviados"
End Sub

Muchas gracias Dante,

Existe alguna manera, en la que si yo por ejemplo el día 1 de enero de 2019, abro el archivo y añado una fila en la que escribo la fecha en la que se tiene que enviar el correo (por ejemplo 1 de Febrero de 2019) y le doy a un botón, este email se queda programado para esa fecha que he puesto (1 de Febrero de 2019). Se crear una cita que se programe para la fecha especificada, pero me gustaría saber si un correo se podría programar.

Muchas gracias de antemano

Ese sería otro tema, la pregunta de este tema es enviar correos cuando presionas un botón.

Debes buscar en al red cómo programar envío de correos. Desde outlook lo puedes hacer en Opciones / Retrasar entrega. Pero debes abrir una nueva pregunta para ese tema, o bien, buscar la opción de VBA Excel para retrasar entregas de outlook.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas