Macro para enviar mail desde excel

Estimado dante estuve viendo que desarrollaste una macro para enviar mails desde excel.

Private Sub Workbook_Open()
'envía mail
'Por.Dam
Sheets("Task Status").Select
ufila = Range("B" & Rows.Count).End(xlUp).Row
For i = 4 To ufila
If Cells(i, 7) <= Cells(i, 8) Then
Set parte1 = CreateObject("outlook.application")
Set parte2 = parte1.createitem(olmailitem)
para = Cells(i, 10) & ";" & Cells(i, 11) & ";" & Cells(i, 12)
parte2.to = para 'Destinatarios
'parte2.CC = "" 'Con copia
parte2.Subject = "Task Status" '"Asunto"
'"Cuerpo del mensaje"
parte2.body = "Señ@r " & Cells(i, 5) & _
" el trabajo " & Cells(i, 2) & _
" le fue asignado el día " & Cells(i, 6) & _
" y actualmente se encuentra " & Cells(i, 8) & _
". Favor indicar la razón de esta situación."
'parte2. Attachments.Add Ruta & Archivo
parte2.Send 'El correo se envía en automático
'parte2. Display 'El correo se muestra
End If
Next
End Sub

Lo que quería saber es si podría ajustarse la misma para hacer lo siguiente.

Supongamos que el lunes 23/01/2017 sale una persona de vacaciones, yo quisiera que desde excel se envíe un mail unos 5 días antes del 23/01/2017 a determinadas direcciones.

Ejemplo: a1 nombre, b1fecha en que saldria de vacaciones, c1 mail 1, d1 mail2.

O bien te paso la planilla que manejo para que en base a ella se modifique la macro.

1 Respuesta

Respuesta
2

H o la: Envíame tu archivo con algunos ejemplos.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Alejandro Iturre” y el título de esta pregunta.

Te anexo la macro

Sub EnviarCorreos()
'Por.Dante Amor
    Sheets(1).Select
    For i = 9 To Range("BB" & Rows.Count).End(xlUp).Row
        cinco = Cells(i, "BB").Value - 5
        If Date = Cells(i, "BB").Value - 5 Or _
           Date = Cells(i, "BB").Value - 10 Then
            '
            uc = Cells(i, Columns.Count).End(xlToLeft).Column
            If uc >= Columns("BE").Column Then
                For j = Columns("BE").Column To uc
                    para = para & Cells(i, j).Value & "; "
                Next
                Set dam = CreateObject("outlook.application").createitem(0)
                dam.To = para
                dam.Subject = "Informe de Vacaciones"
                dam.body = "Por el presente se informa que el empleado abajo detallado, " & _
                           "gozará del siguiente Periodo Vacacional: " & vbCr & _
                           "Legajo: " & Cells(i, "D").Value & vbCr & _
                           "Nombre: " & Cells(i, "E").Value & vbCr & _
                           "Fecha de Inicio: " & Cells(i, "BB").Value & vbCr & _
                           "Fecha de Regreso: " & Cells(i, "BC").Value & vbCr & _
                           "Cantidad de días: " & Cells(i, "BD").Value & vbCr & _
                           "Encargado: " & Cells(i, "AU").Value & vbCr & _
                           "Empleador: " & Cells(i, "AV").Value & vbCr & _
                           "Condición: " & Cells(i, "AW").Value & vbCr & _
                           "Antigüedad: " & Cells(i, "AY").Value & vbCr & vbCr & _
                           "Atentamente: Oficina de Recursos Humanos"
                '
                dam.Send 'El correo se envía en automático
                'dam.Display 'El correo se muestra
            End If
        End If
    Next
    MsgBox "Revisón de envío de correos terminada"
End Sub

R ecuerda valorar las respuestas, para que sigas recibiendo las ayudas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas