Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Guardar rango de celdas como PDF

| 6 Comments

El método ExportAsFixedFormat de Microsoft Excel 2007 permite exportar un archivo con el formato que se especifique. La sintaxis de este método es la siguiente:

expresión.ExportAsFixedFormat(Type, Filename, Quality, IncludeDocProperties, IgnorePrintAreas, From, To, OpenAfterPublish)

Donde expresión es la variable que representa un objeto Worksheet mientras que los parámetros son los siguientes:

Type.- Define el tipo de formato al que se debe exportar. Puede ser xlTypePDF o xlTypeXPS.

Filename.- Indica el nombre del archivo que se debe guardar; se puede incluir una ruta de acceso completa.

Quality.- Puede ser xlQualityStandard o xlQualityMinimum.

IncludeDocProperties.- True indica que se deben incluir las propiedades de los documentos, False indica lo contrario.

IgnorePrintAreas.- True indica que se omiten las áreas de impresión establecidas al publicar el libro, False indica lo contrario

From.- Número de la página en la que comienza la publicación.

To.- Número de la última página que se va a publicar.

OpenAfterPublish.- True indica que se muestra el archivo en el visor después de haberlo publicado, False indica lo contrario.

Para guardar un rango de celdas la sintaxis sería como la siguiente:

Sheets(“Sheet1”).Range(“A1:E10”).ExportAsFixedFormat …

Guardar rango de celdas como PDF

 

Por: Christian Gózar

6 Comments

  1. Al ejecutar la función obtengo el error “5” indicando que el metodo o el argumento no es valido. Estoy tratando de hacerlo en MS Office 2010.

  2. Funciona perfecto, pero mi duda es como puedo hacer para el rango sera variable, es decir que pueda elegir diferentes rango a exportar, espero haberme dado a entender

    slds. y gracias de antemano

    • Sub TestExportAsFixedFormat()

      Dim range_value As String
      Dim name As String

      range_value = InputBox(“Ingresa el rango de celdas que deseas guardar”, “Rango”)
      name = InputBox(“Ingresa el nombre del archivo”, “Ingresa nombre”)

      Dim rng As Range
      Set rng = Range(range_value)

      Dim fileName As String
      fileName = “C:\Users\Usuario1\Downloads\” + name + “.pdf”

      rng.ExportAsFixedFormat Type:=xlTypePDF, _
      fileName:=fileName, Quality:=xlQualityStandard, _
      IncludeDocProperties:=True, IgnorePrintAreas:=True, _
      From:=1, To:=1, OpenAfterPublish:=True
      End Sub

  3. Me funciona perfecto y logré adaptarlo a mi necesidad. Muchas Gracias por el aporte.

    Yo imprimos recibos de clientes. Mi Aplicación realiza impresiones individuales de cada recibo y con esta ayuda tuya, ahora puedo guardar un respaldo en PDF de cada recibo.

    Una consulta.
    ¿Se podría hacer que en el proceso de impresión de cada recibo se vayan agregando dentro del mismo documento “pdf”; es decir si imprimo 20 recibos, que no me genere 20 “pdf”, sino solo uno con 20 páginas conteniendo cada una, cada uno de los recibos???
    Espero haberme hecho entender.

    Nuevamente Muchas Gracias por tu aporte.
    Saludos.

  4. Hola Estoy Trabajando con esta Macro pero necesito que me pregunte cuantas hojas deseo exportar quien me puede ayudar

    Sub Exportar_Cotizacion_PDF()

    Ans = MsgBox(“Seguro quiere Guardar en PDF la Cotizacion?”, vbYesNo, “Aviso”)

    If Ans = vbYes Then

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    “C:\Users\Daniel\Cotizaciones\Cotizaciones PDF\2017\” _
    & “DE” & Range(“G3″) & ” ” & Range(“D13”).Value _
    , Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True

    End If

    End Sub

    • Buenas Noches, yo lo haría así, no se si se ajuste a lo que necesita, espero le sea de utilidad:

      Sub Exportar_Cotizacion_PDF()
      Dim rng As Range
      Set rng = Range(“g3:d13”)
      ActiveSheet.PageSetup.PrintArea = rng

      Dim fileName As String
      fileName = “C:\Temp\cotizacion.pdf”

      Ans = MsgBox(“Seguro quiere Guardar en PDF la Cotizacion?”, vbYesNo, “Aviso”)
      If Ans = vbYes Then

      rng.ExportAsFixedFormat Type:=xlTypePDF, _
      fileName:=fileName, Quality:=xlQualityStandard, _
      IncludeDocProperties:=True, IgnorePrintAreas:=True, _
      From:=1, To:=1, OpenAfterPublish:=True

      End If
      End Sub

Deja un comentario

Required fields are marked *.


Excel Avanzado located at , Lima, Perú . Reviewed by usuarios rated: 4.7 / 5