Generar un pdf y mandarlo desde Excel

¿Me podrías ayudar a ver como puede hacer que desde excel genere un pdf y lo mande a través desde el correo de yahoo?

2 respuestas

Respuesta
1

Yo he usado varios servicios gratis online para cargar un excel y descargar en PDF. Entre ellos:

ILovePDF: https://www.ilovepdf.com/excel_to_pdf 

SmallPDF: https://smallpdf.com/es/excel-a-pdf 

Online2PDF: https://online2pdf.com/en/convert-excel-to-pdf 

SodaPDF: https://www.sodapdf.com/es/excel-a-pdf/ 

PDF2Go: https://www.pdf2go.com/es/excel-a-pdf 

PDFCandy: https://pdfcandy.com/excel-to-pdf.html 

Que lo envíe automáticamente a través de correo electrónico, no se como. Pero pues nada te cuesta hacerlo manualmente, ja ja.

Respuesta
1

Te anexo la macro con unos ajustes.

Sub Enviar_Correo_Por_Yahoo()
'Act.Por Dante Amor
    correo = "[email protected]"
    Password = "password"
    rango = "A1:G26"
    arch = Range("K4").Value & ".pdf"
    para = Range("K1").Value
    asunto = Range("K2").Value
    cuerpo = Range("K3").Value
    '
    Set Email = New CDO.Message
    dato = "http://schemas.microsoft.com/cdo/configuration/"
    Email.Configuration.Fields.Item(dato & "smtpserver") = "smtp.mail.yahoo.com"
    Email.Configuration.Fields.Item(dato & "sendusing") = 2
    Email.Configuration.Fields.Item(dato & "smtpserverport") = 465
    Email.Configuration.Fields.Item(dato & "smtpauthenticate") = Abs(1)
    Email.Configuration.Fields.Item(dato & "smtpconnectiontimeout") = 30
    Email.Configuration.Fields.Item(dato & "sendusername") = correo
    Email.Configuration.Fields.Item(dato & "sendpassword") = Password
    Email.Configuration.Fields.Item(dato & "smtpusessl") = True
    DoEvents
    '
    ruta = ThisWorkbook.Path & "\"
    Range(rango).ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & arch, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    '
    Email.From = correo
    Email.To = para
    Email.Subject = asunto
    Email.TextBody = cuerpo
    Email.AddAttachment ruta & arch
    Email.Configuration.Fields.Update
    On Error Resume Next
    Email.Send
    werr = Err.Number & " " & Err.Description
    MsgBox "Mensaje del Correo enviado: " & werr, vbInformation
End Sub

Si el resultado de la macro es 0, entonces el correo fue enviado.

Si te aparece algún mensaje, entonces me envías el texto del mensaje.

Debes seguir las indicaciones que te envié:

Adaptar esta macro a Yahoo para mandar

[No olvides valorar las respuestas.

Muchísimas gracias. Funciona perfectamente

Dos cosas, ¿se podría poner los campos CC y CCO?

Y en vez de que el resultado ponga 0, ¿se podría poner otro texto?

Va la macro actualizada

Sub Enviar_Correo_Por_Yahoo()
'Act.Por Dante Amor
    correo = "[email protected]"
    Password = "password"
    rango = "A1:G26"
    arch = Range("K4").Value & ".pdf"
    para = Range("K1").Value
    asunto = Range("K2").Value
    cuerpo = Range("K3").Value
    concopia = Range("K5").Value
    copiaoculta = Range("K6").Value
    '
    Set Email = New CDO.Message
    dato = "http://schemas.microsoft.com/cdo/configuration/"
    Email.Configuration.Fields.Item(dato & "smtpserver") = "smtp.mail.yahoo.com"
    Email.Configuration.Fields.Item(dato & "sendusing") = 2
    Email.Configuration.Fields.Item(dato & "smtpserverport") = 465
    Email.Configuration.Fields.Item(dato & "smtpauthenticate") = Abs(1)
    Email.Configuration.Fields.Item(dato & "smtpconnectiontimeout") = 30
    Email.Configuration.Fields.Item(dato & "sendusername") = correo
    Email.Configuration.Fields.Item(dato & "sendpassword") = Password
    Email.Configuration.Fields.Item(dato & "smtpusessl") = True
    DoEvents
    '
    ruta = ThisWorkbook.Path & "\"
    Range(rango).ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & arch, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    '
    Email.From = correo
    Email.To = para
    Email.CC = concopia
    Email.BCC = copiaoculta
    Email.Subject = asunto
    Email.TextBody = cuerpo
    Email.AddAttachment ruta & arch
    Email.Configuration.Fields.Update
    On Error Resume Next
    Email.Send
    werr = Err.Number & " " & Err.Description
    If Err.Number = 0 Then werr = "Correo enviado"
    MsgBox "Mensaje : " & werr, vbInformation
End Sub

Avísame cualquier duda.

Perfecto como siempre

sabes porque en elementos enviados de yahoo no apararecen los mails que se mandan??

Saludos

Eso es algo que no he podido resolver. Supongo que es porque no están saliendo directamente de tu correo, solamente utilizan la conexión y envía el correo.


No olvides también valorarme en esta respuesta:

Envio por mail yahoo desde excel

¡Gracias! 

Eres muy muy bueno

Ya estuve investigando y al parecer no se almacena en la bandeja de enviados, revisé la configuración de la cuenta y no hay nada. Solamente encontré que se puede guardar en un archivo y después puedes consultar el archivo. Pero no lo he aplicada.

No olvides también valorarme en esta respuesta:

Envio por mail yahoo desde excel

Buenos días,

¿Y ese archivo donde se guarda o donde lo puedo ver?

Un saludo

Ya hice la prueba de la generación del archivo y no funciona.

Reviso si existe alguna alternativa y te la comento.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas