es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Área de impresión en varias páginas con el mismo encabezado

Tengo una pregunta con respecto a la impresión de un área en varias páginas y cómo obtener la misma “área” en la parte superior del papel.

Mi problema es que cuando hago un salto de página de esta manera, solo se imprime hasta el salto de página, no se imprimen los números que están debajo.
Cuando se imprime la segunda parte, debe incluir las 13 primeras filas del área (donde está la explicación).

Espero que alguien pueda ayudar.

Tengo este código para la impresión:

Llamar a SetPrintArea

    Con ActiveSheet.PageSetup
        .Orientation = xlRetrato
        .PaperSize = xlPapelA4
        .Borrador = Falso
        .Zoom = Falso
        .AjustarAPaginasVerticalmente = Falso
        .AjustarAPaginasHorizontalmente = 1
        .BlancoYNegro = Verdadero
        .CentrarHorizontalmente = Falso
        .CentrarVerticalmente = Verdadero
    Fin Con

    ActiveSheet.HPageBreaks.Add Before:=ActiveSheet.Rows(56)
Fin Sub

Sub SetPrintArea()
    Dim lastCell As Long
    Dim ws As Worksheet

    lastCell = Range("P" & Rows.Count).End(xlUp).Offset(-4).Row
    ActiveSheet.PageSetup.PrintArea = "AB1:AS" & lastCell
Fin Sub
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que tu problema está relacionado con los saltos de página y no con la exportación a PDF. Para imprimir un área en varias páginas y obtener la misma “área” en la parte superior del papel, puedes intentar ajustar el área de impresión y agregar saltos de página según sea necesario.

    Según tu código, parece que ya has establecido el área de impresión utilizando el sub Set_Print_Area. Para incluir las primeras 13 filas del área en la segunda parte de la impresión, puedes ajustar la variable lastCell en el sub para incluir esas filas. Por ejemplo, puedes modificar la línea lastCell = Range("P" & Rows.Count).End(xlUp).Offset(-4).Row por lastCell = Range("P" & Rows.Count).End(xlUp).Offset(9).Row.

    Para agregar un salto de página en la ubicación deseada, puedes usar el método HPageBreaks.Add, tal como lo has hecho en el código. Puedes modificar el número de fila en el argumento Before para ajustar la ubicación del salto de página. Por ejemplo, puedes ajustar ActiveSheet.HPageBreaks.Add Before:=ActiveSheet.Rows(56) por ActiveSheet.HPageBreaks.Add Before:=ActiveSheet.Rows(69) para incluir las primeras 13 filas del área en la segunda parte de la impresión.

    En general, parece que ya tienes la mayor parte del código en su lugar. Es posible que debas ajustar el área de impresión y agregar saltos de página según sea necesario para lograr el resultado deseado.

Comments are closed.