Á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
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 variablelastCell
en el sub para incluir esas filas. Por ejemplo, puedes modificar la línealastCell = Range("P" & Rows.Count).End(xlUp).Offset(-4).Row
porlastCell = 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 argumentoBefore
para ajustar la ubicación del salto de página. Por ejemplo, puedes ajustarActiveSheet.HPageBreaks.Add Before:=ActiveSheet.Rows(56)
porActiveSheet.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.