Imprimir celdas al final de la última página

20/11/2005 - 09:56 por javi | Informe spam
Hola

Me gustaría saber si se puede hacer que un grupo de celdas que está al
final de un documento se pueden poner para imprimir siempre en la parte
inferior de la página.

Tengo el documento ajustado para imprimir en una página de ancho por XX
de alto, lo que quisiera es que las celdas que están las últimas se
imprimieran al final de la última página, dejando, si fuera necesario,
un espacio en blanco entre las celdas anteriores y las del final

xxx xxx xxx xxx
xxx xxx xxx xxx
xxx xxx xxx xxx
xxx xxx xxx xxx
xxx xxx xxx xxx
xxx xxx xxx xxx




xxx xxx xxx xxx
xxx xxx xxx xxx
xxx xxx xxx xxx

Me gustaría que el documento al imprimirlo quedara como muestra el
dibujo anterior, el último bloque de celdas al final del documento.

Como siempre muchas gracias por vuestro tiempo y por vuestra ayuda.

Un saludo

Javi

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
21/11/2005 - 02:41 | Informe spam
hola, javi !

... que un grupo de celdas que esta al final de un documento
... poner para imprimir siempre en la parte inferior de la pagina
... documento ajustado para imprimir en una pagina de ancho por XX de alto
... dejando, si fuera necesario, un espacio... entre las celdas anteriores y las del final [...]



algunos 'detalles' a contemplar [de darse cada caso] y el como 'resolverlos' [si de presentaran]...
[suponiendo que el rango 'normal/anterior' a las celdas 'finales' es de/creciente]...

1) si por casualidad [y a 'renglon corrido'] NO 'caben' [en la ultima pagina] las celdas 'totales' del rango 'final'...
-> se puede/debe 'desplazar' el rango 'final' a la siguiente pagina ???
2) existe la posibilidad de filas con 'alturas diferentes' en el rango 'normal' de la hoja ???
3) defines TU una 'area de impresion' ??? [o... 'se la dejas' a excel para que la 'detecte'] -?-
4) incluyes 'titulos' de impresion [filas] en la parte superior en la configuracion de pagina de 'esa' hoja ???
5) finalmente... cual es el rango que contiene el grupo de celdas 'finales' ??? [algun nombre ?]

comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 javi
21/11/2005 - 23:39 | Informe spam
Hola Héctor M.

Pensé que podría ser más fácil.

Te comento las posibilidades:

1) Si no entrran en una página deberian pasar a la siguiente todas las
celdas juntas.

2) Hay celdascon distintas alturas, aunque la altura es fija.

3) El area de impresion esta definida por mi. Tengo configurado que se
imprima todo el documento en una página de ancho por 40 de alto
(evidentemente sobra). Supongo que esto es definir el area de impresion.

4) Si hay definidos títulos de impresion para que se repitan en cada
página que se imprima.

5) No he asignado nombre al rango, pero no habría problema en hacerlo.

Gracias de nuevo

Javi

Héctor Miguel escribió:
hola, javi !


... que un grupo de celdas que esta al final de un documento
... poner para imprimir siempre en la parte inferior de la pagina
... documento ajustado para imprimir en una pagina de ancho por XX de alto
... dejando, si fuera necesario, un espacio... entre las celdas anteriores y las del final [...]




algunos 'detalles' a contemplar [de darse cada caso] y el como 'resolverlos' [si de presentaran]...
[suponiendo que el rango 'normal/anterior' a las celdas 'finales' es de/creciente]...

1) si por casualidad [y a 'renglon corrido'] NO 'caben' [en la ultima pagina] las celdas 'totales' del rango 'final'...
-> se puede/debe 'desplazar' el rango 'final' a la siguiente pagina ???
2) existe la posibilidad de filas con 'alturas diferentes' en el rango 'normal' de la hoja ???
3) defines TU una 'area de impresion' ??? [o... 'se la dejas' a excel para que la 'detecte'] -?-
4) incluyes 'titulos' de impresion [filas] en la parte superior en la configuracion de pagina de 'esa' hoja ???
5) finalmente... cual es el rango que contiene el grupo de celdas 'finales' ??? [algun nombre ?]

comentas ?
saludos,
hector.


Respuesta Responder a este mensaje
#3 Héctor Miguel
22/11/2005 - 05:47 | Informe spam
hola, javi !

Pense que podria ser mas facil.



-> en realidad... 'ajustar' una configuracion de pagina para que 'ciertas celdas' aparezcan impresas en 'cierto lugar'...
aparte de que pudieran intervenir 'otros factores' [como la resolucion 'de salida' de la impresora y 'uno que otro' mas]...
requiere de andar 'buscando' en donde 'caen' los saltos de pagina y... [ya mejor ni te cuento] :))

... las posibilidades:
1) Si no entrran en una pagina deberian pasar a la siguiente todas las celdas juntas.
2) Hay celdas con distintas alturas, aunque la altura es fija.
3) ... Tengo configurado que se imprima todo el documento en una pagina de ancho por 40 de alto ... (evidentemente sobra). Supongo que esto es definir el area de impresion.
4) Si hay definidos títulos de impresion para que se repitan en cada pagina que se imprima.
5) No he asignado nombre al rango, pero no habría problema en hacerlo.



-> 'el punto' es... que habria que 'andar insertando filas' [y luego eliminandolas] hasta 'ajustar' el rango de celdas 'al final' de la impresion :-(
'aprovechando' que ya tienes 'ajustada' la hoja en 1 pagina de ancho por x_paginas de alto...
[y para evitar la danza de filas insertadas y luego eliminadas]...
el codigo 'mas barato' que he podido imaginar es el que te expongo al final del presente... con las siguientes consideraciones:

1) asigna un nombre al rango con las celdas 'finales' [en el ejemplo estoy suponiendo uno 'propio'] ;)
PERO... asegurate que ANTES del inicio de dicho rango... INCLUYES 'unas cuantas' filas VACIAS [p.e.]
-> para el caso de MI configuracion por omision de hojas [fuentes y tama#o de las fuentes, etc.]
utilice un 'ejemplo' de 10 filas con datos [en el rango A71:A80] e inclui [en el nombre] el rango A11:A70... VACIO
es decir... use [menu] insertar / nombre / definir... nombre: Celdas.Finales -> se refiere a: A11:A80
posteriormente... OCULTE las filas 11:70 [revisa en el codigo la variable 'Ocultas = 60'] <= OJO

2) lo que hace el codigo es... mostrar las filas ocultas... buscar el ultimo salto de pagina... y 'ajustar' el rango de celdas 'finales' ;)

espero que salgan pocas 'modificaciones'... aunque tendras que encontrar el 'ajuste' necesario en tu caso [las 60 filas ocultas] ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

p.d. una vez que hagas las 'suficientes pruebas'... sustituye en el codigo el metodo '.PrintPreview'... por -> PrintOut ;)

en un modulo de codigo 'normal' ==Sub Ajustar_Celdas_Finales()
Dim Ocultas As Byte, FSH, UltimaFila As Long, UltimoSalto As Byte, Ajuste As Byte
Ocultas = 60
With Range("Celdas.Finales")
.Cells(1).Resize(Ocultas).EntireRow.Hidden = False
UltimaFila = .Row + .Rows.Count - 1
Names.Add Name:="FSH", RefersToR1C1:="=Get.Document(64)"
FSH = Evaluate("Index(FSH,Column(a:iv),0)"): Names("FSH").Delete
UltimoSalto = FSH(UBound(FSH))
If UltimoSalto < UltimaFila Then Ajuste = UltimaFila - UltimoSalto + 1
.Cells(1).Resize(Ajuste).EntireRow.Hidden = True
ActiveSheet.PrintPreview
.Cells(1).Resize(Ocultas).EntireRow.Hidden = True
End With
End Sub
Respuesta Responder a este mensaje
#4 javi
23/11/2005 - 23:41 | Informe spam
Hola Héctor M.

Como siempre, muchas gracias por la ayuda, lo probaré a ver si soy capaz
de hacerlo funcionar.

Un saludo

Javi



Héctor Miguel escribió:
hola, javi !


Pense que podria ser mas facil.




-> en realidad... 'ajustar' una configuracion de pagina para que 'ciertas celdas' aparezcan impresas en 'cierto lugar'...
aparte de que pudieran intervenir 'otros factores' [como la resolucion 'de salida' de la impresora y 'uno que otro' mas]...
requiere de andar 'buscando' en donde 'caen' los saltos de pagina y... [ya mejor ni te cuento] :))


... las posibilidades:
1) Si no entrran en una pagina deberian pasar a la siguiente todas las celdas juntas.
2) Hay celdas con distintas alturas, aunque la altura es fija.
3) ... Tengo configurado que se imprima todo el documento en una pagina de ancho por 40 de alto ... (evidentemente sobra). Supongo que esto es definir el area de impresion.
4) Si hay definidos títulos de impresion para que se repitan en cada pagina que se imprima.
5) No he asignado nombre al rango, pero no habría problema en hacerlo.




-> 'el punto' es... que habria que 'andar insertando filas' [y luego eliminandolas] hasta 'ajustar' el rango de celdas 'al final' de la impresion :-(
'aprovechando' que ya tienes 'ajustada' la hoja en 1 pagina de ancho por x_paginas de alto...
[y para evitar la danza de filas insertadas y luego eliminadas]...
el codigo 'mas barato' que he podido imaginar es el que te expongo al final del presente... con las siguientes consideraciones:

1) asigna un nombre al rango con las celdas 'finales' [en el ejemplo estoy suponiendo uno 'propio'] ;)
PERO... asegurate que ANTES del inicio de dicho rango... INCLUYES 'unas cuantas' filas VACIAS [p.e.]
-> para el caso de MI configuracion por omision de hojas [fuentes y tama#o de las fuentes, etc.]
utilice un 'ejemplo' de 10 filas con datos [en el rango A71:A80] e inclui [en el nombre] el rango A11:A70... VACIO
es decir... use [menu] insertar / nombre / definir... nombre: Celdas.Finales -> se refiere a: A11:A80
posteriormente... OCULTE las filas 11:70 [revisa en el codigo la variable 'Ocultas = 60'] <= OJO

2) lo que hace el codigo es... mostrar las filas ocultas... buscar el ultimo salto de pagina... y 'ajustar' el rango de celdas 'finales' ;)

espero que salgan pocas 'modificaciones'... aunque tendras que encontrar el 'ajuste' necesario en tu caso [las 60 filas ocultas] ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

p.d. una vez que hagas las 'suficientes pruebas'... sustituye en el codigo el metodo '.PrintPreview'... por -> PrintOut ;)

en un modulo de codigo 'normal' ==> Sub Ajustar_Celdas_Finales()
Dim Ocultas As Byte, FSH, UltimaFila As Long, UltimoSalto As Byte, Ajuste As Byte
Ocultas = 60
With Range("Celdas.Finales")
.Cells(1).Resize(Ocultas).EntireRow.Hidden = False
UltimaFila = .Row + .Rows.Count - 1
Names.Add Name:="FSH", RefersToR1C1:="=Get.Document(64)"
FSH = Evaluate("Index(FSH,Column(a:iv),0)"): Names("FSH").Delete
UltimoSalto = FSH(UBound(FSH))
If UltimoSalto < UltimaFila Then Ajuste = UltimaFila - UltimoSalto + 1
.Cells(1).Resize(Ajuste).EntireRow.Hidden = True
ActiveSheet.PrintPreview
.Cells(1).Resize(Ocultas).EntireRow.Hidden = True
End With
End Sub


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida