Jump to content

Macro para guardar rango de celdas en PDF


Recommended Posts

Buenas.

Quisiera hacer una macro para guardar un rango de celdas en un PDF cuando se cliquee en un botón. 

La macro en sí, se hacerla. El problema viene en que el rango de celdas seleccionado es grande (no mucho), pero lo suficiente como para que cuando se genere el PDF se guarde en varias hojas. Por tanto, lo que me gustaría que me ayudasen a conseguir es a que la información del rango de celdas se redimensione para que quepa en una única hoja del PDF. ¿Es posible?

Gracias.

Link to comment
Share on other sites

Hace 7 horas, JSDJSD dijo:

Sube tu archivo y probamos

Aquí adjunto un excel de prueba. 

Lo que me gustaría es guardar las tablas (en la prueba están vacías) en una única hoja horizontal en PDF. 

La opción de imprimir que comenta Exceler C no me sirve, ya que tengo que tener una impresora activa todo el rato y no puedo cambiarla por la de Microsoft Print To PDF.

Gracias.

Prueba.xlsm

Link to comment
Share on other sites

Prueba esto:

 

Sub guarda_pdf()

    ruta = ActiveWorkbook.Path & "\salida3.pdf"
    ActiveSheet.PageSetup.PrintArea = "$A$2:$P$42"
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0)
        .RightMargin = Application.InchesToPoints(0)
        .TopMargin = Application.InchesToPoints(0)
        .BottomMargin = Application.InchesToPoints(0)
        .HeaderMargin = Application.InchesToPoints(0)
        .FooterMargin = Application.InchesToPoints(0)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperLetter
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        ruta, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
End Sub
 

Link to comment
Share on other sites

Muchas gracias a los dos. Ambas respuestas me han servido, pero por sencillez he optado por la de JSDJSD.

No obstante, como comenté anteriormente, tengo que tener siempre activa una impresora (de tickets) entonces si le doy a la macro, al crearse el PDF lo hace en el formato de esa impresora. Por tanto, pensé en el inicio de ejecutar la macro poner: 

Application.ActivePrinter = "Microsoft Print to PDF"

Y una vez finalizada la macro, cambiar a la impresora de Tickets, pero me da error.

¿Hay alguna forma de conseguir esto que comento?

Gracias.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 30.00 EUR
      Objetivo: 130.00 EUR
  • Files

  • Download Statistics

    • Files
      143
    • Comments
      87
    • Reviews
      25

    Latest File
    By pegones1

    4    0

  • Crear macros Excel

  • Posts

    • Hola Tu pregunta, aunque no lo creas, es demasiado genérica y hace falta imaginarse demasiado tu situación. Trata o de adjuntar tu archivo o de especificar mejor las cosas. No olvides que no necesariamente escribir más es especificar mejor. Saludos.
    • Hola a todos, Intento extraer en una sola función, una fecha que esta dentro de una cadena de texto y esta función extraiga únicamente la fecha. Adjunto un archivo como ejemplo, seria hacer en una sola celda los 4 pasos del archivo  Gracias de antemano Libro1.xlsx
    • Buenas noches. Quería preguntar si es posible incluir un buscador dentro de un dashboard teniendo en cuenta que solo quiero incluir algunos parámetros (nombre, DNI, Categoría y otro más, hasta un total de 4) de todos los que tiene la tabla dinámica situada en otra hoja. ¿Tengo que exportar todos los datos al propio dashboard? Mi idea es que todo los datos se mantengan en la una hoja y que en el dashboard (otra hoja) tan solo aparezcan los que cumplan con los requisitos que se incluyen en el propio buscador.......Es la primera pregunta que lanzo y quiero pedir disculpas porque he visto que hay que adjuntar archivo, pero tiene datos personales y por la protección de datos es imposible. Agradecería que me informaran si es posible hacer lo que pido y alguna referencia para poder estudiarla porque entiendo que será trabajoso pero me gusta aprender. Muchas gracias.
    • Ante todo dar las gracias por la acogida.  Soy Jose Mari y la verdad que llego a estos lugares con ganas de aprender mucho y sobre todo a resolver aquellas dudas que me vayan surgiendo. Tengo 47 años y soy profesor.  Saludos. 
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy