Enviar hoja activa en pdf

Podrías ayudarme con una macro que adjunte en formato pdf la hoja activa de un libro (uso Outlook), El nombre del archivo adjunto debe ser igual al de la hoja activa, el asunto en el correo debe decir por ejemplo "informes". El destinatario yo lo digitaré, ya que varían según la información. Además este archivo no debe guardarse en la PC, creo que podría ser como archivo temporal, para luego con la misma macro eliminarlo. Ojalá puedas ayudarme ya que me urge enviar informes en PDF a varios destinatarios.

Respuesta
1

Me gustaría saber como puedo poner en el asunto el mismo nombre del archivo y también adjuntar un mensaje por default en el cuerpo del correo + la firma. ¿Se podrá? ¿Cómo quedaría la macro?

1 respuesta más de otro experto

Respuesta
3

Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: enviar_hoja_pdf
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub enviar_hoja_pdf()
'Enviar una hoja por correo
'por.dam
Application.ScreenUpdating = False
Application.DisplayAlerts = False
des = InputBox("Destinatario: ", "CORREO")
If des = Empty Then Exit Sub
Set h2 = ActiveSheet
    wpath = ThisWorkbook.Path & "\"
    nombre = h2.Name
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=wpath & nombre & ".pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    Set dam1 = CreateObject("outlook.application")
    Set dam2 = dam1.createitem(olmailitem)
    dam2.to = des 'Destinatarios¡
    dam2.Subject = "informes" '"Asunto"
    dam2.Attachments.Add wpath & nombre & ".pdf"
    'dam2.display 'El correo se muestra
    dam2.send
    DoEvents
    Kill wpath & nombre & ".pdf"
    DoEvents
End Sub

Saludos.Dante Amor
Si es lo que necesitas.

Gracias, funciona perfecto, pero si quisiera agilizar el proceso, es decir, que el destinatario esté por ejemplo en la celda A1 de la hoja activa, ya no tener que digitarlo, sino que la macro envíe el pdf automáticamente según esta celda.. ¿cómo podría lograr esto?

Cambia esto en la macro

des = InputBox("Destinatario: ", "CORREO")
If des = Empty Then Exit Sub

Por esto

des = range("A1")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas