Guardar la hoja Excel como pdf y enviar por email (Outlook)

Compatibilidad: Truco compatible con Excel 365Truco compatible con Excel 2016Truco compatible con Excel 2013Truco compatible con Excel 2010Truco compatible con Excel 2007

Para optimizar nuestro trabajo podemos guardar la hoja Excel como pdf y enviar por email (Outlook).

Guardar la hoja Excel como pdf y enviar por email (Outlook)
  • CREAR MACRO VBA

  1. Abrir el libro deseado, que contiene una tabla dinámica.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir a: Barra de Menú / Insertar / Módulo. Mostrará la ventana del módulo donde escribimos la macro.

    Explorador de Proyectos con módulo1 seleccionado
  4. Escribir el código de la macro:

    Sub EnviaPDF()

    Dim mi_hoja As Worksheet
    Dim mi_ventana As FileDialog
    Dim mi_carpeta As String
    Dim mi_archivo As Integer
    Dim mi_outlook As Object
    Dim mi_correo As Object
    Dim mi_rango As Range

    Set mi_hoja = ActiveSheet
    Set mi_ventana = Application.FileDialog(msoFileDialogFolderPicker)

    If mi_ventana.Show = True Then

    mi_carpeta = mi_ventana.SelectedItems(1)

    Else

    MsgBox "No se indicó la carpeta donde guardar el PDF…" _
    & vbCrLf & vbCrLf & "Operación cancelada.", _
    vbCritical, "Carpeta de almacenamiento pdf"
    Exit Sub

    End If

    mi_carpeta = mi_carpeta + "\" + mi_hoja.Name + ".pdf"

    If Len(Dir(mi_carpeta)) > 0 Then

    mi_archivo = MsgBox(mi_carpeta & " existente." _
    & vbCrLf & vbCrLf & "¿Desea reemplazarlo?", _
    vbYesNo + vbQuestion, "Archivo existente")

    On Error Resume Next
    If mi_archivo = vbYes Then

    Kill mi_carpeta

    Else

    MsgBox "Reemplazar el archivo PDF existente para continuar…" _
    & vbCrLf & vbCrLf & "Operación cancelada.", _
    vbCritical, "Confirmar guardar como"

    Exit Sub

    End If

    If Err.Number <> 0 Then

    MsgBox "El archivo pdf se encuentra abierto _
    o protegido como sólo lectura." _
    & vbCrLf & vbCrLf, vbCritical, _
    "Error al guardar el archivo"

    Exit Sub

    End If

    End If

    Set mi_rango = mi_hoja.UsedRange
    If Application.WorksheetFunction.CountA(mi_rango.Cells) <> 0 Then

    mi_hoja.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=mi_carpeta, Quality:=xlQualityStandard

    Set mi_outlook = CreateObject("Outlook.Application")
    Set mi_correo = mi_outlook.CreateItem(0)

    With mi_correo

    .Display
    .To = ""
    .CC = ""
    .Subject = mi_hoja.Name + ".pdf"
    .Attachments.Add mi_carpeta

    If DisplayEmail = False Then

    End If

    End With

    Else

    MsgBox "La hoja activa no puede estar vacía…"

    Exit Sub

    End If

    End Sub

  5. – .To = "". Podemos poner entre las comillas el email del destinatario (.To = "destinatario1@email.com").
    – .CC = "". Podemos poner entre las comillas el email del destinatario (.CC = "destinatario2@email.com").
    – .Subject = xSht.Name + ".pdf" Podemos poner el Asunto entre comillas (.Subject = "Informe mensual").

  6. Guardar el libro con la extensión *.xlsm. Libro habilitado para macros.

  • EJECUTAR MACRO

  1. Ejecutar la macro "EnviaPDF".

  2. Mostrará la ventana examinar, para indicar la carpeta donde guardar el archivo pdf con el nombre de la hoja Excel.

    Ventana examinar, para indicar la carpeta donde guardar el archivo pdf.
  3. Mostrará la ventana Outlook con el archivo pdf como adjunto.

    Ventana Outlook con el archivo pdf adjunto.
  4. Insertar el email del destinatario del correo, cc y mensaje.

  

Nivel de dificultad: Experto VBA-Macros Excel Experto VBA – Macros

Un comentario en “Guardar la hoja Excel como pdf y enviar por email (Outlook)

  • como seria para crear a pdf solo un rango de celdas del la hoja de calculo por ejemplo que creer un pdf con el rago AM5 a AY34.

    gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *