Envíos masivos con adjuntos personalizados excel y outlook

Necesito que por favor alguien me ayude a realizar la macro para hacer envíos masivos con documentos adjuntos diferentes. Tengo hecha la macro para hacer envíos masivos a través de una macro excel que se conecta al outlook pero me falta incluir la ruta o documentos adjuntos que no sé.

He diseñado un excel muy básico: En la columna A está el destinatario, Columna B el Asunto del correo y Columna C el cuerpo del correo. Querría añadir en la Columna DE la ruta o fichero adjunto y que la macro lo detectara.

Lo que tengo hecho en VBA es lo siguiente:

Sub EnvioMasEmail()

Dim A As Outlook.Application
Dim email As Outlook.Mailitem

Set A = New Outlook.Application

For i = 2 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set email = A.createItem(emailItem)
With email
.To = Cells(i, 1).Value
.Subject = Cells(i, 2).Value
.Body = Cells(i, 3).Value
.Display
.Send
End With

Next i

Set email = Nothing
Set A = Nothing
End Sub

1 respuesta

Respuesta

Para añadir un adjunto cuya ruta tiene en la columna 4, use lo siguiente:

. Attachments. Add(Cells(i, 4). Value)

Muchas gracias por contestar tan rápido. He puesto ese código en la macro pero me da error y me dice que la ruta de acceso no existe. He mirado el fichero en propiedades y he puesto esa extensión en la columna D y en VBS he puesto el código que me ha facilitado justo debajo Body = Cells(i, 3).Value. ¿Sabrías decirme cuál es el error?

Muchas gracias y un saludo,

Ya he visto el error. Me faltaba un punto. Gracias me funciona perfectamente

Buenas tardes,

He añadido en la macro otro archivo adjunto en el caso de que en el mail tiene dos documentos adjuntos, pero si la siguiente persona sólo tiene un documento adjunto, es decir, datos en la columna D y vacío en la columna E me da error y  no envía el correo. ¿Hay alguna forma de poner que en el caso de que en la columna E no tenga datos omitir y pasar a la siguiente acción? Gracias

Sub EnvioMasEmail()

Dim A As Outlook.Application
Dim email As Outlook.Mailitem

Set A = New Outlook.Application


For i = 2 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set email = A.createItem(emailItem)
With email
.To = Cells(i, 1).Value
.Subject = Cells(i, 2).Value
.Body = Cells(i, 3).Value
.Attachments.Add (Cells(i, 4).Value)
.Attachments.Add (Cells(i, 5).Value)
.Display
.Send
End With

Next i

Set email = Nothing
Set A = Nothing
End Sub

If Cells(i, 5).Value <> “” Then .Attachments.Add (Cells(i, 5).Value)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas