miércoles, 15 de abril de 2015

VBA: La propiedad FirstPageNumber - Numerando páginas de impresión...

En el post del día veremos cómo controlar la numeración de nuestras páginas impresas.
Se plantea el siguiente objetivo: Imprimir diferentes hojas, siendo la primera una portada en la que no queremos ver numeración alguna, y deseamos que la numeración comience en 1 a partir de la segunda de las páginas.. y continúe...


Veamos un planteamiento de hoja a imprimir:

VBA: La propiedad FirstPageNumber - Numerando páginas de impresión...


El asunto es claro: la primera página irá sin numeración, la segunda irá numerada como página 1, la tercera como página 2, etc...

Insertamos en un módulo estándar del proyecto de VBA y ejecutamos el siguiente procedimiento:

Sub ImpresionPaginas()
'configuramos el diseño de página
With ActiveSheet.PageSetup
    'Indicamos que la primera página es diferente
    .DifferentFirstPageHeaderFooter = True
    'indicamos con qué numeración deseamos comenzar la numeración global...
    .FirstPageNumber = 0
    'Numeramos la sección derecha del Pié de página
    .RightFooter = "&P"
End With

'imprimimos el área de impresión, mostrando la Vista preliminar
ActiveSheet.PrintOut preview:=True
End Sub



La clave de esta simple macro es la propiedad .FirstPageNumber.

Otra forma podría ser:

Sub ImpresionPaginas2()

With ActiveSheet.PageSetup
    'indicamos que la numeración comience en automático
    .FirstPageNumber = xlAutomatic
    'Indicamos que la primera página es diferente
    .DifferentFirstPageHeaderFooter = True
    'asignamos valor a la sección derecha del pié de página
    'OJO con la forma de escribir el valor...
    .RightFooter = "&P-1 "
End With

'imprimimos el área de impresión, mostrando la Vista preliminar
ActiveSheet.PrintOut preview:=True
End Sub



En este segundo caso empleamos la poco conocida forma de restar o sumar una cantidad directamente.

De igual forma podríamos configurar nuestras páginas de impresión desde la ventana diálogo correspondiente, sin emplear la programación
Para ello accedemos al cuadro diálogo de Configurar página, por ejemplo desde la ficha Diseño Página > grupo Configurar Página:

VBA: La propiedad FirstPageNumber - Numerando páginas de impresión...


Nos fijamos en la primera pestaña de Página, y en el campo editable Primer Número de página insertaremos según el caso ó 0 (cero) ó Automático (para los dos casos anteriores).

VBA: La propiedad FirstPageNumber - Numerando páginas de impresión...



una vez configurado este apartado navegaremos por el panel de Configurar página hasta la pestaña Encabezado y Pié de página donde marcaremos el apartado de Primera página diferente:

VBA: La propiedad FirstPageNumber - Numerando páginas de impresión...


Dentro de esta misma pestaña de Encabezado y Pié de página accederemos al botón de Personalizar pié de página:

VBA: La propiedad FirstPageNumber - Numerando páginas de impresión...


En la sección derecha (la que queramos) incluiremos lo siguiente: "&P-1 " (sin las comillas!!). O en su caso, según configuración: "&P" o "&[Página]" (siempre sin comillas!)

VBA: La propiedad FirstPageNumber - Numerando páginas de impresión...


Y tras Aceptar.. estará listo.

2 comentarios:

  1. Publico comentario y no los veo publicados:

    Decia que ejecuto cualquier de las macros y no pasa nada, las hojas las veo como antes como si nada pasara

    ResponderEliminar
    Respuestas
    1. Hola Joao,
      las acciones de este post se reflejan en las páginas impresas (o en la vista preliminar).
      Un cordial saludo

      Eliminar