Macro para reportes de excel a pdf

De nuevo tengo un problema, pasa que esta información quisiera que se guarde en un archivo PDF a través de un botón, en realidad son 5 pestañas que quiero que únicamente salgan como PDF en una carpeta, ¿cómo podría hacerlo?

Además quisiera saber algún macro para poder imprimir una serie de hojas en donde únicamente tengo puesto tablas dinamicas.

Respuesta
1

La siguiente macro es para guardar 5 hojas, cambia en la macro:

"Hoja1", "Hoja2", "Hoja3", "Hoja4", "Hoja5", por el nombre de tus hojas.

Cambia "C:\trabajo\varios\", por el nombre de la carpeta en donde quieres que se guarde.

Y cambia "archivo.pdf", por el nombre que quieras ponerle al archivo PDF.


Sub VariasHojasPdf()
'Por.Dante Amor
    ruta = "C:\trabajo\varios\"
    nombre = "archivo.pdf"
    Sheets(Array("Hoja1", "Hoja2", "Hoja3", "Hoja4", "Hoja5")).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & nombre, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

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: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: VariasHojasPdf
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Con la siguiente macro, imprimes solamente las hojas que tienen tablas dinámicas.

Sub ImprimirHojas()
'Por.DanteAmor
    For Each h In Sheets
        For Each t In h.PivotTables
            h.PrintOut Copies:=1, Collate:=True
            Exit For
        Next
    Next
End Sub

Excelente respuesta, pero en el caso de las impresiones de las tablas dinámicas si tengo varias hojas llámense "hoja1", " hoja2", etc... ¿Cómo puedo ajustar el macro?

Para el caso de las impresiones, la macro lee todas las hojas. Si requieres algo más específico puedes crear una nueva pregunta, en el título de la pregunta, si lo deseas, puedes poner que va dirigida a Dante Amor; en la pregunta detallas lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas