Officefull.es

Excel, word, powerpoint, android

Página en Celda Excel Abril 22, 2009

Página X de Y Excel
Página Impresa en Celda

Página en Celda Excel

En Excel podemos insertar el número de página o páginas totales, bien en el encabezado o bien en el pie de página, pero…

¿Y si necesitamos tener en una celda de Excel el número de página X de Y, que podamos controlar esta paginación si se cambia el orden de impresión de la hoja, se modifican los márgenes, resolución, calidad, Zoom, se cambie de impresora o de ordenador?

En el siguiente artículo os mostraremos como podéis determinar el número de página en la que se imprime una celda.

Estos métodos NO tienen “preparación” para títulos fijos (filas superiores / columnas a la izquierda)

Todos los archivos de Excel se abren por defecto de configuración, con la opción -> Cálculo Automático activada

Office Excel 2007

Opción Automático

Office Excel 2003

Opción Automático

En la Versión-1 y Versión-2 podéis controlar el re-cálculo de la paginación impresa, activando la Opción Manual y refrescando la Hoja de cálculo mediante la Tecla F9. [Al estar creadas con macro-funciones 4.0, ocasionan un consumo de recursos (memoria y re-cálculos) en contra-parte de la sencillez con la que se logra su cometido].

En la Versión-3 podréis controlar el cálculoautomático desde la Celda [$A$1] HojaPruebas, SIN tener que activar la Opción Manual, para tratar de que no sea un estorbo en otras secciones de su modelo donde requiera que los cálculos serefresquen de manera constante

Número de página impresa (en celda) V-1

Utilizando “nombres-formula” macro-funciones Excel v-4.0

En el siguiente archivo de pruebas, podéis modificar la configuración de página(orientación de impresión), también podéis probar a definir algún rango de impresión y combinar con otras modificaciones, ajustar los márgenes, agregar o eliminar saltos de página.

Página en celda

Nombres – Fórmulas – Definición

Nombres definidos Excel macro funciones 4.0

hActiva – Nombre de la hoja donde se realizan los cálculos.

=extrae(indicar.celda(32,!$a$1),encontrar("]",indicar.celda(32,!$a$1))+1,31)

nC – Obtiene el número de columnas en saltos verticales.

=contar(spv)

nF – Obtiene el número de filas en saltos horizontales.

=contar(sph)

nPag – Cruce de saltos (horizontal-fila / vertical-columna) de la celda.

=elegir(xord,(saltoc-1)*(nf+parea)+saltof,(saltof-1)*(nc+parea)+saltoc)

nPags – Número total de páginas, hoja donde se realizan los cálculos.

=indicar.documento(50,hactiva)

pArea – Determina si se ha definido una área de impresión personalizada.

=largo(indicar.documento(81,hactiva))=0

saltoC – Determina el número de saltos verticales.

=si(eserror(coincidir(columna(),spv)),1,1+coincidir(columna(),spv))

saltoF – Determina el número de saltos horizontales.

=si(eserror(coincidir(fila(),sph)),1,1+coincidir(fila(),sph))

spH ? Números de fila donde “caen” los saltos de página horizontales.

=indicar.documento(64,hactiva)

spV ? Números de fila donde “caen” los saltos de página verticales.

=indicar.documento(65,hactiva)

xOrd ? Orden de impresión (abajo-derecha ?, o derecha-abajo ?).

=indicar.documento(61,hactiva)

Pagina ? Devuelve en la celda el nombre [ =Pagina ] (Pagina X de Y).

="Pagina "&npag&" de "&npags+0*hoy()

Número de página impresa (en celda) V-2

Utilizando una Función personalizada en una hoja (internacional) de macros del Excel v-4.0

En el siguiente archivo podréis comprobar que se ha creado una hoja (internacional) de macros Excel V-4.0 tomando como base los nombres utilizados en la version-1 de este modelo. Se eliminaron los nombres spH y spV y sus referencias se aplican en directo en sus (pos) llamadas.

Comparar los dos archivos creados: nombres definidos V-4.0 (Versión-1) y Macro funciones V-4.0 (Versión 2)

Hoja internacional macros V-4

Pagina

Actualización junto con los re-cálculos de excel ( “+0*hoy()” de la versión-1)

=VOLATILE(TRUE)

hActiva

=MID(GET.CELL(32,CALLER()),FIND("]",GET.CELL(32,CALLER()))+1,31)

nPags

=GET.DOCUMENT(50,B4)

xOrd

=GET.DOCUMENT(61,B4)

pArea

=LEN(GET.DOCUMENT(81,B4))=0

nF

=COUNT(GET.DOCUMENT(64,B4))

nC

=COUNT(GET.DOCUMENT(65,B4))

saltoF

=IF(ISERROR(MATCH(ROW(CALLER()),GET.DOCUMENT(64,B4))),1,1+MATCH(ROW(CALLER()),
GET.DOCUMENT(64,B4)))

saltoC

IF(ISERROR(MATCH(COLUMN(CALLER()),GET.DOCUMENT(65,B4))),1,1+MATCH(COLUMN(CALLER()),
GET.DOCUMENT(65,B4)))

nPag

=CHOOSE(B6,(B11-1)*(B7+B8)+B10,(B10-1)*(B7+B9)+B11)

Pagina

=RETURN(“Pagina “&B12&” de “&B5)

Número de página impresa (en celda) V-3

En el siguiente archivo podréis comprobar que es muy similar a la versión-2, sólo qué, en esta versión la “volatilidad” sea a vuestra discreción, a través devariables/argumentos dinámicos, situando en la celda [ A1 ] de la hoja Pruebas:

0/falso ó <> 0/verdadero

Verdadero/falso

Cómo/cuando se re-calcula la función, sólo se agrega una línea con el nombre del argumento y se aplica a la línea del =volatile(argumento)

Macro funciones Paginación impresa en celda

 

Podéis comparar los tres archivos creados y elegir el que más se ajuste a vuestras necesidades

Nombres definidos V-4.0 (Versión-1) ó Macro funciones V-4.0 (Versión 2Versión 3)

Los siguientes archivos de prueba tratan Macro funciones 4.0, esto quiere decir que cuando se abran los archivos nos puede pedir que habilitemos el contenido para su correcto funcionamiento.

Descarga de los Archivos para pruebas

Numero de pagina impresa (en celda) V1_V2_V3 (13.64 kB)

Enlaces de Interés

Definir o borrar un área de impresión en una hoja de cálculo (Excel 2007)

http://office.microsoft.com/es-es/excel/HP100215423082.aspx

Agregar, eliminar o mover saltos de página (Excel 2003)

http://office.microsoft.com/es-es/excel/HP052030493082.aspx

Objetos Excel

http://www.officefull.es/office/excel-97-07/73-objetos-excel-excel-objects.html

Función Concatenar.Si

http://www.officefull.es/office/excel-97-07/57-concatenar-si-funcion.html

Concatenar Matrices

http://www.officefull.es/office/excel-97-07/62-concatenar-matrices.html

Categorías: Sin categoría

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *