P

12/02/2004 - 20:48 por Santi | Informe spam
Tengo un libro en el que hay varias páginas llamadas

Nombre (1)
Nombre (2)
Nombre (3)
Nombre (4)

Cada mes puede haber un número diferente de páginas.

Al imprimirlas, en el encabezado de cada página quiero que aparezca el
número de páginas y el total, en el formáto típico "Página X de N"

Siendo N el número de páginas que tienen como nombre Página (N)
y siendo X el número que aparece en el nombre de cada página.

¿cómo puedo abordar esta cuestión?

Preguntas similare

Leer las respuestas

#16 Santi
16/02/2004 - 13:37 | Informe spam
Héctor Miguel escribió:

[finalmente]... 'me llega'... 'algo de luz'
[yo] 'entiendo' por pagina... la pagina [o las paginas] IMPRESA[S]
ya sea de una hoja de calculo o de todo un libro
[tu] le has dado el mismo 'significado' a pagina que a hoja de calculo
[al menos... en lo que a 'este' libro se refiere]



Es posible que lo haya hecho, pero ha sido involuntariamente, pues
normalmente le doy el mismo significado preciso que tu apuntas.
Disculpa si esto te ha confundido. (Entono el "mea culpa") :-)

[yo] ahora entiendo 'el porque'...
[tu] te 'has encargado' de que 'cuando se imprima' cada hoja...
'quede ajustada' a una sola pagina [uuhfff] ;)



Si. Cierto. Esto lo apunté en uno de los primeros comentarios. Se que es
un poco rudimentario, pero prefiero hacerlo así, porque de esta forma
minimizo un poco problemas derivados de márgenes, impresoras, etc.

El informe a imprimir es uno, que podía estar perfectamente en una sola
hoja excel, aunque tenga entre tres y seis páginas que suele tener cada
mes.

Pero si lo envío a la oficina en una sola hoja excel... corro el peligro
de que lo impriman cortando las páginas en diferente lugar, dejando el
informe en papel con el corte entre páginas en medio del nuevo folio.

Te aseguro que en la oficina les sale esto por la impresora y se quedan
tan anchos. (Hay antecedentes de cartas en las que utilizan dos folios,
cuando en el segundo tan sólo ha quedado colgado el nombre para la
firma)

Por ese motivo, les pongo una página en cada hoja, y de momento, lo van
haciendo un poco mejor.

Voy a investigar con las directrices que me indicas en tu último
mensaje, a ver si doy con alguna idea buena.

Muchas gracias una vez más.
Respuesta Responder a este mensaje
#17 Santi
16/02/2004 - 14:03 | Informe spam
Bueno, he conseguido algo, pero no me convence plenamente por varios
motivos. Tal vez mejorar esto, corrigiendo los inconvenientes, sea más
sencillo.

Lo que he conseguido es lo siguiente:

Mediante una macro hago que cuando se vaya a imprimir el documento, se
inserte en una celda del documento el nombre de la página (que ahora se
llaman Página 1, Página 2, ... ), de (número total de páginas del libro)

De esta forma se logra perfectamente el objetivo que pretendo.

Pero me obliga a dejar el libro con el número exacto de hojas, es
decir... empleaba una hoja para introducir los datos constantes en todas
las páginas del informe. Ahora, tengo que hacer eso sobre la página/hoja
1, y que las demás utilicen los datos tomándolos de ahí.

Eso no es un inconveniente muy importante, pero es más fácil poner los
datos correctos si están todos juntos, que poniéndolos directamente
sobre el formulario (máxime si como espero, algún día puedo pasar el
libro para facilitar la tarea a algunos compañeros).

Pero el inconveniente más grande de no poder utilizar hojas adicionales
en el mismo libro, es que tengo que utilizar un libro exclusivo para
este informe, y el resto de informes enviarlos en otro libro diferente.

Y si se lo paso a otro compañero, y le da por insertar una hoja de otro
informe... no va a entender por qué la numeración ahora no es correcta.

Pero lo que más me asusta, es si en la oficina van a aceptar las macros
de un libro que habitualmente no las tiene.
Por este motivo, tal vez lo mismo que yo he hecho, podría hacerse con
una fórmula directa en una celda, evitando así el uso de macros.

La macro que he utilizado es la siguiente:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Range("P1").Select
ActiveCell.FormulaR1C1 = ActiveSheet.Name & " of " &
ActiveWorkbook.Worksheets.Count
End Sub


Para incorporar más hojas que no entren en la cuenta de páginas...
¿podría hacer un bucle que compruebe si el nombre de la hoja se ajusta
al patrón, y si es correcto, contarla, mientras que si no lo es, no
tenerla en cuenta?

Hoja = 1
For Hoja to ActiveWorkbook.Worksheets.Count
If "Página" está en ActiveSheet.Name
entonces... Total = Total + 1
sino, nada
Hoja = Hoja + 1
Siguiente Hoja

¿Me podéis traducir esto que he puesto a código normal?
Muchas gracias
Respuesta Responder a este mensaje
#18 Héctor Miguel
16/02/2004 - 20:52 | Informe spam
hola, Santi !

[yo] ahora entiendo 'el porque'...
[tu] te 'has encargado' de que 'cuando se imprima' cada hoja... 'quede ajustada' a una sola pagina [uuhfff] ;)



... lo apunte en uno de los primeros comentarios [...]



te confieso que 'me perdi' entre 'los hilos' de esta consulta y... no encontre 'el de tu apunte' :((
[no importa] :)) te 'paunto' otra [posible] solucion en tu mensaje mas 'reciente' ;)

saludos,
hector.
Respuesta Responder a este mensaje
#19 Héctor Miguel
16/02/2004 - 21:21 | Informe spam
hola, Santi !

... he conseguido algo, pero no me convence plenamente [...]
... hago que cuando se vaya a imprimir el documento, se inserte en una celda del documento el nombre de la pagina [...]
... pero me obliga a dejar el libro con el numero exacto de hojas [...]
... el inconveniente mas grande es no poder utilizar hojas adicionales en el mismo libro [...]
... tengo que utilizar un libro exclusivo para este informe, y el resto de informes enviarlos en otro libro diferente.
... si ... a otro compañero le da por insertar una hoja de otro informe... no va a entender por que la numeracion ahora no es


correcta.
... mas me asusta ... si en la oficina van a aceptar las macros de un libro que habitualmente no las tiene.
... tal vez ... podria hacerse con una formula directa en una celda, evitando así el uso de macros.
... incorporar mas hojas que no entren en la cuenta de paginas [...]
... hacer un bucle que compruebe si el nombre de la hoja se ajusta al patron [...]



para no seguir 'tijeretando' tu mensaje :(( te 'apunto' una [posible] solucion :))
en un modulo de codigo 'normal' ==Sub Personalizar_Paginas()
Dim Hoja As Worksheet, Pag As Integer, Pags As Integer
Application.ScreenUpdating = False
For Each Hoja In ActiveWorkbook.Worksheets
If StrConv(Left(Hoja.Name, 8), vbLowerCase) = "nombre (" Then Pags = Pags + 1
Next
For Each Hoja In ActiveWorkbook.Worksheets
If StrConv(Left(Hoja.Name, 8), vbLowerCase) = "nombre (" Then
Pag = Mid(Hoja.Name, 9, Len(Hoja.Name) - 9)
Hoja.PageSetup.LeftHeader = "Página " & Pag & " de " & Pags
End If
Next
End Sub
¨¨¨¨¨¨¨¨¨¨¨¨
pros: la 'paginacion' de las hojas 'que cumplen' con el patron' => queda FIJA< la macro NO 'tiene porque' 'ser parte' del libro que se pagina ;)
solo requieres ejecutarla CUANDO 'este listo' el libro... grabarlo... y... enviarlo
cons: FALLARA si [en la oficina o por otro compañero] se 'agregan' hojas [con el patrton] y... NO 'se ejecuta' para 'finalizar' :((

¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#20 Santi
18/02/2004 - 00:08 | Informe spam
Héctor Miguel escribió:

cons: FALLARA si [en la oficina o por otro compañero] se 'agregan'
hojas [con el patrton] y... NO 'se ejecuta' para 'finalizar' :((



Me di cuenta de ese detalle. Pero esa macro que me pusiste... tal vez no
la necesiten en la oficina.
He pensado que puedo utilizarla yo para insertar la paginación en mis
hojas, y se la mando a ellos sin macro.
Si les da por insertar una hoja (no suelen hacerlo, pero a lo mejor en
alguna ocasión surge la necesidad), que se fastidien y que lo cambien a
mano.

De esa forma evito también que tengan miedo a macros nuevas.

Aunque en el siguiente informe voy a hacer una pequeña prueba
enviándoles una macro sencilla. He reducido el libro al informe que nos
ocupa, y les mandaré los demás informes en otro libro.
Y en este que sólo tiene las páginas que interesan le he puesto esta
pequeña macro:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Range("P1").Select
ActiveCell.FormulaR1C1 = ActiveSheet.Name & " of " &
ActiveWorkbook.Worksheets.Count
Range("A1").Select
End Sub

Las hojas se llaman Página 1, Página 2, Página 3...

Aunque me he dado cuenta de que si las imprimen una a una, va perfecto,
pero si lo hacen seleccionando todas, les pone a todas el mismo número
de página.

De todas formas me da igual...
Para el siguiente informe lo modificaré bastante, pero para este, no
tengo ganas de darle más vueltas.

Si os interesa, ya os contaré los resultados... :-)
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida