Exportar hoja de Excel en formato PDF con macros

Seguro en más de una ocasión se ha presentado la necesidad de guardar la Hoja de Excel en formato PDF, pues es precisamente lo que vamos a realizar en el siguiente ejercicio.

Macro para exportar datos de una hoja de Excel a Pdf.

Método ExportAsFixedFormat: Con la aplicación de este es posible exportar la Hoja de Excel a un archivo en formato PDF o XPS.

Para el siguiente ejemplo, vamos a trabajar con la misma tabla sencilla de la entrega anterior:

El objetivo es guardar esta hoja en un archivo PDF y lo primero es ingresar al editor de Visual Basic, puede ser con la combinación de teclas Alt + F11 y desde el explorador de proyectos, es necesario dar doble clic sobre la hoja donde se requiere crear la macro que para nuestro ejercicio se ubicará en la Hoja1:

Excel a PDF.

Aquí el código para exportar datos en Excel en formato Pdf.

Sub ExportarPDF()

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _

Filename:=ThisWorkbook.Path & "\Gerencie.pdf", Quality:=xlQualityStandard, _

IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

Queda de la siguiente manera en el editor VBA:

Veamos lo que significan cada una de las líneas:

  1. La primera línea Sub ExportarPDF(), indica el inicio de la macro.
  2. Las siguientes líneas excepto la última en realidad es una sola línea de código dividida en 3 partes para que pudiera ser visible en la imagen (obsérvese que al final de cada línea se encuentra un guion bajo con el cual se puede separar una línea de código en varias partes y que sea demasiado larga para nuestro gusto). Lo que se hace es utilizar del Objeto ActiveSheet el Método ExportAsFixedFormat e indicando el tipo que sea PDF con el parámetro Type:=xlTypePDF. Luego se especifica la ruta para guardar y el nombre que en este ejemplo será “Gerencie.pdf” y finalmente se asigna el valor Falso a las características de Propiedades y área de impresión; la última propiedad OpenAfterPublish se encuentra en True, lo que significa que una vez se genere el PDF, lo abra
  3. La última línea marca el fin (End) de la Macro o Subrutina (Sub).

Para ejecutar la macro, lo ideal es insertar una autoforma en la Hoja1 y luego asignar la macro que acabamos de crear (clic derecho sobre la Autoforma y seleccionar la opción Asignar macro:

Finalmente seleccionar la macro que se acaba de crear:

Y al dar clic sobre el la autoforma, la macro genera el archivo PDF en la ruta donde tenemos el archivo Excel:

Así como también deja abierto el mismo archivo para ser revisado:

Descargar archivo de trabajo.

Guía Laboral 2024

Conozca sus derechos y obligaciones laborales como trabajador o como empleador, y evítese problemas. Ver más.

Forma de citar este artículo (APA):

Invitado. (2015, septiembre 6). Exportar hoja de Excel en formato PDF con macros [Entrada de blog]. Recuperado de https://www.gerencie.com/exportar-hoja-de-excel-en-formato-pdf-con-macros.html

Recomendados.

Compartir este contenido
Compártalo en Facebook Compártalo en Whatsapp
Deje su opinión o su pregunta.
Trataremos de darle respuesta.

Regístrese para informarle cuando se responda su pregunta.

  1. Jorge Cordova (mayo 30 de 2023)

    Buen dia como puedo guardar en pdf pero de forma Horizontal

    Responder
  2. B3 Dsgn3r (marzo 22 de 2023)

    Hola muy buenas tardes,

    Excelente Tutorial, yo tengo un macro diferente y me ha funcionado muy bien, la situación que se me presenta es que yo tengo protegida la hoja (celdas bloqueadas para seguridad) y cuando le doy click al boton para que me genere el archivo PDF, me dice qu eno se puede hacer por las celdas bloqueadas.

    Este es el codigo de la maco:

    Sub guardapdf()
    ‘Por.DAM
    uf = ActiveCell.SpecialCells(xlLastCell).Row
    ru = ThisWorkbook.Path & “\”
    Range(“A1:K53”).Select
    Selection.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=ru & Range(“I4″) & ” – ” & Format(Range(“C11”)) & “.pdf”, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, OpenAfterPublish:=False
    End Sub

    Cuando me dice depurar me subraya esta linea: uf = ActiveCell.SpecialCells(xlLastCell).Row

    pueden ayudarme con esta situación? que guarde pdf aún con la hoja protegida?

    Altamente agradecido.

    Responder
    • DAVID en respuesta a B3 Dsgn3r (junio 23 de 2024)

      Saludos hermano, acá la solución para que tu archivo no te de error donde indicas.

      Sub guardapdf()
      ActiveSheet.Unprotect “0000” ‘COLOCAR CLAVE DE TU ARCHIVO

      uf = ActiveCell.SpecialCells(xlLastCell).Row
      ru = ThisWorkbook.Path & “\”

      Selection.ExportAsFixedFormat Type:=xlTypePDF, _
      Filename:=ru & Format(range(“I4″)) & ” – ” & (range(“C11”)) & “.pdf”, _
      Quality:=xlQualityStandard, IncludeDocProperties:=True, _
      IgnorePrintAreas:=False, OpenAfterPublish:=False

      ActiveSheet.Protect “0000” ‘COLOCAR CLAVE DE TU ARCHIVO

      MsgBox “Se ha Exportado el documento Exitosamente”, vbInformation
      End Sub

      Espero le ayude.

      Ah sabes que yo quiero una macro parecida pero que me guarde el documento con el nombre en función a dos celdas F3 Y G3. Y Trate de adaptar este y no me sirve.

      Responder
      • Avatar
        Gerencie.com en respuesta a DAVID (junio 24 de 2024)

        Intente con este código. Adapte el rango a convertir en pdf:

        Sub guardapdf()
        ‘ Desproteger la hoja activa
        ActiveSheet.Unprotect “0000” ‘COLOCAR CLAVE DE TU ARCHIVO

        ‘ Obtener la ruta del directorio del archivo actual
        ru = ThisWorkbook.Path & “\”

        ‘ Definir el nombre del archivo utilizando las celdas F3 y G3
        Dim nombreArchivo As String
        nombreArchivo = Range(“F3″).Value & ” – ” & Range(“G3”).Value & “.pdf”

        ‘ Exportar el rango A1:G30 como PDF
        Range(“A1:G30”).ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ru & nombreArchivo, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False

        ‘ Proteger nuevamente la hoja activa
        ActiveSheet.Protect “0000” ‘COLOCAR CLAVE DE TU ARCHIVO

        ‘ Mostrar mensaje de éxito
        MsgBox “Se ha Exportado el documento Exitosamente”, vbInformation
        End Sub

        Responder
  3. Kevin Serna (octubre 11 de 2022)

    Hola , vengo a consultar sobre una característica especial para la macro. Resulta que cuando la ejecuto me guarda 4 páginas de PDF, en lugar de solamente una con la selección de celdas que yo quiero guardar, quisiera saber si me pueden ayudar a saber como seleccionar un rango de celdas en lugar de la hoja completa.

    Muchísimas gracias por el artículo.

    Responder
  4. MOY-GDL (marzo 3 de 2022)

    Buenas tardes, utilizo una macro para grabar una hoja en formato pdf practicamente como lo muestran aqui. (perfecto); solo que tengo el problema de que el pdf generado necesito firmarlo con una tableta para incrustar la firma. Pero el archivo (sospecho que en su configuración) no me permite hacerlo, y solo es cuando lo genero desde una macro o bien si lo creo manualmente por medio de una impresión. pero si grabo el pdf utilizando el “Guardarlo como PDF” de forma manual, si me lo permite. Habrá algun parametro que falte especificar para que me permita incrustar la firma a la hora de grabarlo?

    Responder
Únete a nuestro canal de WhatsApp para recibir las últimas actualizaciones

Este sitio web utiliza cookies propias y de terceros para ofrecer un mejor servicio. Al seguir navegando acepta su uso.