Macro para adjuntar varios archivos adjuntos similares en nombre
Publicado por Carlos (2 intervenciones) el 15/11/2019 21:17:01
Hola a todos.
Muchas gracias de antemano a toda la comunidad.
Estoy desarrollando una macro para que me envíe varios correos con archivos PDF adjuntos según una lista en Excel, es decir en la tabla tenemos como datos principales el "e-mail de destino" y un "ID" que es el mismo que tiene como nombre cada archivo que se debe adjuntar a cada mail de la lista, hasta aquí todo es manejable.
Pero hay casos en que para un mismo registro en Excel tenemos mas de un mismo archivo que adjuntar por ejemplo tenemos un registro en excel que tenga un ID= abcd y mas de un archivo que tenga como nombre "abcd.pdf", "abcd_1.pdf", "abcd_2.pdf" en estos casos solo me adjunta el primero: "abcd.pdf".
el codigo que tengo es el siguiente:
Un modulo donde tengo las variables:
--------------------------------------------------------------------------------------------------------
================================================================
02 procedimientos uno para recorrer la tabla excel y el otro para adjuntar los pdf a los mails:
---------------------------------------------------------------------------------------------------------------------------------
---> 01 Adjunta mails y envia
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
02 Recorre la tabla excel
---------------------------------------------------------------------------------------------------------------------------------
Muchas gracias de antemano a toda la comunidad.
Estoy desarrollando una macro para que me envíe varios correos con archivos PDF adjuntos según una lista en Excel, es decir en la tabla tenemos como datos principales el "e-mail de destino" y un "ID" que es el mismo que tiene como nombre cada archivo que se debe adjuntar a cada mail de la lista, hasta aquí todo es manejable.
Pero hay casos en que para un mismo registro en Excel tenemos mas de un mismo archivo que adjuntar por ejemplo tenemos un registro en excel que tenga un ID= abcd y mas de un archivo que tenga como nombre "abcd.pdf", "abcd_1.pdf", "abcd_2.pdf" en estos casos solo me adjunta el primero: "abcd.pdf".
el codigo que tengo es el siguiente:
Un modulo donde tengo las variables:
--------------------------------------------------------------------------------------------------------
1
2
3
4
5
Public qMails As Integer 'Cantidad de filas en el excel que son los correos a enviar
Public ID As String 'codigo llave del excel que sera igual al archivo pdf a adjuntar
Public AfilMail As String 'Destinatarios del excel
Public AfilNombre As String 'Nombres del excel
Public CuerpoMail As String 'Cuerpo del mail en HTML
02 procedimientos uno para recorrer la tabla excel y el otro para adjuntar los pdf a los mails:
---------------------------------------------------------------------------------------------------------------------------------
---> 01 Adjunta mails y envia
---------------------------------------------------------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub EnviarMail()
Dim OLApp As Outlook.Application
Dim OLMail As Object
Set OLApp = New Outlook.Application
Set OLMail = OLApp.CreateItem(0)
OLApp.Session.Logon
With OLMail
.To = AfilMail
.CC = ""
.BCC = ""
.Subject = "Correo Prueba"
.HTMLBody = CuerpoMail 'Cuerpo del correo
.Attachments.Add (ThisWorkbook.Path & "\RUTA_CARPETA_CON_ARCHIVOS_A_ADJUNTAR\" & ID & ".PDF")
.Send
End With
Set OLMail = Nothing
Set OLApp = Nothing
End Sub
---------------------------------------------------------------------------------------------------------------------------------
02 Recorre la tabla excel
---------------------------------------------------------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub PreparaDestinos()
Sheets("Plantilla").Activate
Cells(1, 1).Select
qMails = ActiveCell.CurrentRegion.Rows.Count
For i = 2 To qMails
ID = Cells(i, 2)
AfilMail = Cells(i, 3)
AfilNombre = Cells(i, 4)
Call TextoCuerpoMail 'Aca llamo a un cuerpo hecho con HTML pero no es importante por ahora
Call EnviarMail
Next
End Sub
Valora esta pregunta


0