Enviar mail con pdf adjunto desde excel. Macro.

Tengo un código en Visual Basic para que desde un archivo excel (p.e. Factura) ésta se convierta en un .pdf y automáticamente se anexe en un correo de outlook, listo para enviar. Está tomada de un tutorial de youtube pero me da error al ejecutarla. No soy experto aunque me he tomado mucho tiempo en ver el error que no acierto a solucionar. Agradezco que algún experto me eche un cable. Este es el código (pongo en negrita el párrafo donde me da el error (Argumento o llamada a procedimiento no válida)):
Sub correoeVpagsPDF()
Dim nfac, cliente, Email, ruta, LIBRO, ahora, ArchivoPdf As String
Dim ProgCorreo, CorreoSaliente As Object
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With
Set nfac = Range("D2")
Set cliente = Range("D5")
Set Email = Range("D11")
ruta = ThisWorkbook.Path & "\Correoe\"
ahora = Application.WorksheetFunction.Text(Now(), "dd.mm.yy- hh.mm")
LIBRO = nfac & "-" & cliente & "-" & ahora & ".pdf"
ArchivoPdf = ruta & LIBRO
Set ProgCorreo = CreateObject("Outlook.Application")
Set CorreoSaliente = ProgCorreo.CreateItem(0)
With ActiveSheet
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ArchivoPdf, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With
On Error Resume Next
With CorreoSaliente
.to = Email
.CC = "[email protected]"
.BCC = ""
.Subject = "Envío de su factura nº " & nfac
.Body = "Estimados Sres.:" & Chr(13) & _
"Nos complace realizar el envío de la factura del asunto, según nuestro acuerdo." _
& Chr(13) & "Atentamente..."
.Attachments.Add ArchivoPdf
.Display 'o .Send para enviar sin ver
End With
On Error GoTo 0
Set CorreoSaliente = Nothing
Set ProgCorreo = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
End With
End Sub

2 Respuestas

Respuesta
6

Mándame el excel que quieres convertir a pdf y enviar por mail para construirlo desde el principio. Si hay varias pestañas tienes que especificarme cual de ellas hay que convertir a pdf

[email protected]

Enviada, muchas gracias!!

Javi

Esta es la macro que necesitas... como ves es bastante más pequeña y lo hace perfectamente. Tienes que copiarla en un módulo de tu archivo y después ejecutarla

De todas formas te he enviado tu archivo por mail ya funcionando. En la pestaña facturas tienes un botón que lo hace todo.

Sub proceso()
'por luismondelo
Application.DisplayAlerts = False
pase1 = MsgBox("Desea convertir a pdf y enviar por mail???", vbYesNo, "¡¡¡ATENCION!!!")
If pase1 = vbNo Then Exit Sub
ruta = ActiveWorkbook.Path & "\"
mio = ActiveWorkbook.Name
nfac = Range("D2").Value
cliente = Range("D5").Value
correo = Range("D11").Value
nombre = nfac & "_" & cliente & "##" & Day(Date) & "_" & Month(Date) & "_" & Year(Date)
Sheets("facturas").ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & nombre
Set parte1 = CreateObject("outlook.application")
Set parte2 = parte1.createitem(olmailitem)
parte2.to = correo
parte2.Subject = "Envío de su factura nº " & nfac
parte2.Body = "Estimados Sres.:" & Chr(13) & _
"Nos complace realizar el envío de la factura del asunto, según nuestro acuerdo." _
& Chr(13) & "Atentamente..."
parte2.attachments.Add ruta & nombre & ".pdf"
parte2.display
End Sub

recuerda finalizar

Respuesta

Amigo Pregunta para Luis Mondelo: Macro Luis Mondelo te envíe un mail a ver si me puedes apoyar en un formato para el colegio de excel.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas