Macro para envío de correo automático en excel al abrir el archivo, solo enviando 1 vez el recoradorio

Tengo en excel un archivo para dar seguimiento a actividades, lo que quiero hacer es que si en "Respuesta información adicional" (posición H7) no hay una fecha (indicación de que ya se completó), 3 días hábiles antes de que se cumpla "Fecha máxima de respuesta información adicional" (posición I7), mande un correo en OUTLOOK a los correos en las posiciones (N7, O7, P7) y se siga con toda la lista.

Que mande el correo en forma automática cuando abra el correo, y que solo lo envíe en una ocasión. Es decir si al día, siguiente abro el archivo solo mande el correo a los que no ha enviado previamente.

1 Respuesta

Respuesta
2

Para entender bien cómo se debe enviar el correo.

1. Puedes poner 2 ejemplos:

Enviar correo, si en la H7 tienes la fecha 1 y en I7 tienes la fecha 2.

No enviar correo, si en la H7 tienes la fecha 3 y en I7 tienes la fecha 3.

Cambia fecha 1, fecha 2, fecha 3 y fecha 4 por fechas reales para entender cuándo se envía y cuándo no se envía.

2. ¿Qué va en el asunto del correo?

3. ¿Qué va en el cuerpo del correo?

Que tal, muchas gracias por su pronta respuesta

Así se ve la tabla oculte unas columnas, las que no afectan la lógica.

Si en H7 tienes la fecha: 15/06/2015 (Fecha limite para responder)

Si en la celda I7 no hay nada cargado, y abro el archivo el 8 de Junio (5 dias hábiles antes) Mande un correo recordatorio. Si I7 tiene una fecha, la que sea, que no mande nada (quiere decir que ya se respondió).

Si el día 8 de Junio no abrí el archivo pero lo abro el día 9, 10, 11 o 12, que mande el recordatorio  Si ya lo mandó una vez, que los días subsecuentes ya no lo mande.

Si necesita le mando el archivo pero no se como anexarlo.

-Qué va en el asunto del correo?

"Recordatorio Requerimiento de la CRE Permiso" + Celda A7

3. Qué va en el cuerpo del correo?

"No tengo registrado que hayas respondido el requerimiento de la CRE del proyecto en referencia, la fecha de vencimiento es"+Celda (H7).

Saludos"

Espero haber sido Clara,

Muchas gracias

Pon la siguiente macro en los evento de tu libro, cada que abras el libro se verificarán las fechas y los correos enviados.

Para saber si un correo ya fue enviado, estoy poniendo en la columna "CA" una "x" para identificar que ese correo ya fue enviado. Al siguiente día abres el archivo y un registro tiene la marca en la columna "CA", entonces ya no envía el correo.

Private Sub Workbook_Open()
'Por.Dante Amor
    Set h = Sheets("control")
    For i = 7 To h.Range("H" & Rows.Count).End(xlUp).Row
        If IsDate(h.Cells(i, "H")) And h.Cells(i, "I") = "" And h.Cells(i, "CA") = "" Then
            dia = WorksheetFunction.WorkDay(h.Cells(i, "H"), -5)
            If Date >= dia Then
                'enviar correo
                h.Cells(i, "CA") = "x"
                Set dam = CreateObject("outlook.application").createitem(0)
                dam.To = h.Cells(i, "N") & ";" & h.Cells(i, "O") & ";" & h.Cells(i, "P") 'Destinatarios
                dam.Subject = "Recordatorio Requerimiento de la CRE Permiso " & _
                              h.Cells(i, "A")                                            '"Asunto"
                dam.Body = "No tengo registrado que hayas respondido el requerimiento " & _
                           "de la CRE del proyecto en referencia, la fecha de vencimiento es " & _
                           h.Cells(i, "H")
                dam.Send
            End If
        End If
    Next
End Sub

Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. Del lado derecho copia la macro

Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas