Para Dante - No imprimir paginas en blanco y no tomar en cuenta las paginas en blanco para el numero de pagina

Estimado dante,

Espero que puedas ayudarme con este problema.

tengo un archivo de excel en la hoja5 tengo 70 paginas(use saltos de pagina) al momento de imprimir oculto las filas que no contienen los datos que necesito. Esto hace que muchas hojas esten vacias. Tambien la numeracion de paginas toma en cuenta esta paginas.

Quisiera que esas paginas vacias no se impriman y que la numeración de paginas sea correlativa, es decir, que no se tome en cuenta las hojas vacias para el numero de pagina. Que solo se numeren las hojas con datos

Agredesco mucho tu ayuda.

1 respuesta

Respuesta
1

Envíame tu archivo para ver cómo tienes las hojas en blanco que no quieres imprimir. Dime cuáles son esas hojas.

Estimado Dante

Te envíe el archivo

Gracias

No encuentro la propiedad o la instrucción para evitar imprimir páginas en blanco, desarrollé esta macro para revisar si hay datos entre un corte de página y otro corte de página, si no hay datos elimino las filas, de esta forma no se imprime, pero se vuelve más complejo para controlar los cortes de hoja verticales, si solamente tienes de corte horizontales, igual te puede servir la macro.

La otra opción es, si conoces qué datos van después del corte de página vertical, entonces puedas pasar esos datos abajo del último dato de la columna A y entonces ocupar la macro.

La macro te genera una nueva hoja, imprime esa nueva hoja y revisa si es lo que necesitas.

Sub imprimir()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Sheets("Hoja1").Copy after:=Sheets(Sheets.Count)
    '
    i = 1
    For Each lb In ActiveSheet.HPageBreaks
        f = lb.Location.Row
        For Each cb In ActiveSheet.VPageBreaks
            c = cb.Location.Column
            r = Application.CountA(Range(Cells(i, 1), Cells(f - 1, c - 1)))
            If r = 0 Then
                Range(Cells(i, "J"), Cells(f - 1, "J")) = "X"
            End If
            Exit For
        Next
        i = f
    Next
    For i = Range("J" & Rows.Count).End(xlUp).Row To 1 Step -1
        If Cells(i, "J") = "X" Then Rows(i).Delete
    Next
    Application.ScreenUpdating = True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas