Un tema de impresión.

15/07/2004 - 05:28 por MarianoH | Informe spam
Tengo una planilla que se imprime diariamente y en la que la cantidad de
filas varía mucho, por lo que normalmente ocupa entre 1 y 5 hojas.
Para imprimirla configuré "Ajustar a: 1 páginas de ancho por __ de alto"
para que mantenga la proporción y varíe la cantidad de hojas al cargar más o
menos filas.
Tambien hago que se repita la fila con los encabezados de columna en
cada hoja.
Ahora, al final de esta hoja hay un recuadro que debería salir entero,
pero depende de la cantidad de filas que imprimo, a veces sale cortado en
dos hojas y con los encabezados de columna en el medio. Cuando pasa esto
tengo que setear la cantidad de hojas en una menos de las que imprime y
tirar nuevamente la impresión.
¿Como puedo hacer configurar la cantidad de páginas de alto
automaticamente según el tamaño de la impresión para que este recuadro no me
salga nunca cortado?
Probé fijandome a mano en cuantas filas salta la hoja y creando una
macro, pero si varío el ancho de alguna columna no sirve.

Gracias

Preguntas similare

Leer las respuestas

#1 Víctor
15/07/2004 - 10:16 | Informe spam
Cuando tengas definido el rango a imprimir, prueba a
hacer Menú / Ver / Vista previa de salto de página, y te
aparecerá la máscara tal cual se imprimiría.

Ahora, con el ratón, puedes "mover" y modificar las
líneas finales de cada hoja, forzando que la última a
imprimir sea la que te interese.

Espero que te sirva.

:-)

Tengo una planilla que se imprime diariamente y en


la que la cantidad de
filas varía mucho, por lo que normalmente ocupa entre 1


y 5 hojas.
Para imprimirla configuré "Ajustar a: 1 páginas de


ancho por __ de alto"
para que mantenga la proporción y varíe la cantidad de


hojas al cargar más o
menos filas.
Tambien hago que se repita la fila con los


encabezados de columna en
cada hoja.
Ahora, al final de esta hoja hay un recuadro que


debería salir entero,
pero depende de la cantidad de filas que imprimo, a


veces sale cortado en
dos hojas y con los encabezados de columna en el medio.


Cuando pasa esto
tengo que setear la cantidad de hojas en una menos de


las que imprime y
tirar nuevamente la impresión.
¿Como puedo hacer configurar la cantidad de páginas


de alto
automaticamente según el tamaño de la impresión para que


este recuadro no me
salga nunca cortado?
Probé fijandome a mano en cuantas filas salta la


hoja y creando una
macro, pero si varío el ancho de alguna columna no sirve.

Gracias


.

Respuesta Responder a este mensaje
#2 Héctor Miguel
15/07/2004 - 11:03 | Informe spam
hola, Mariano !

... planilla que se imprime diariamente ... la cantidad de filas varia ... ocupa entre 1 y 5 hojas.
... configure "Ajustar a: 1 paginas de ancho por __ de alto" para que mantenga la proporcion [...]
... al final ... un recuadro que deberia salir entero ... a veces sale cortado ... y los encabezados ... en el medio
... tengo que setear la cantidad de hojas en una menos de las que imprime y tirar nuevamente la impresion.
... configurar ... paginas de alto automaticamente ... para que este recuadro no me salga nunca cortado?



si 'corres' la siguiente macro =>antes de tirar la impresion<= de 'esa hoja'...
te 'aseguras' de que la impresion se vaya [por default] con '1 pagina de ancho por __ de alto'
y que [en caso de ser necesario] el ultimo 'salto horizontal' NUNCA 'exceda' de la 'ultima fila' [del 'recuadro']
hago algunos 'supuestos' [como el que la hoja se imprime 'en solitario' NO 'en conjunto con otras']
para [tratar de] 'prevenir horrores' -involuntarios?- [no creo que 'todos'] :((
y si... [quizas] prefieres 'manejar' las acciones en el evento '_beforeprint' [del libro]...
'habria que...' [des-re]habiltar los eventos y 'detectar' si la hoja que 'se imprime' es 'esa'... etc. [¿comentas?]

saludos,
hector.
en un modulo de codigo 'normal' ==Sub Ajustar_Paginas()
Dim PT As Integer: PT = ExecuteExcel4Macro("Get.Document(50)")
If PT = 1 Then Exit Sub
Dim Fx As Integer, mS As Variant
With ActiveSheet.PageSetup
.FitToPagesWide = 1: .FitToPagesTall = False
If .PrintArea = "" _
Then Fx = Range(.Parent.UsedRange.Address).Rows.Count _
Else Fx = Range(.PrintArea).Row + Range(.PrintArea).Rows.Count - 1
Names.Add Name:="mS", RefersToR1C1:="=Get.Document(64)"
mS = Evaluate("Index(mS,Column(a:iv),0)"): Names("mS").Delete
If mS(UBound(mS)) < Fx Then .FitToPagesTall = PT - 1
End With
End Sub
Respuesta Responder a este mensaje
#3 MarianoH
21/07/2004 - 07:49 | Informe spam
Hector, gracias por tu ayuda.
La macro no me funciona del todo bien.
A veces habria que imprimir en 3 hojas y hace que salga en 2.
Igualmente no entiendo el código en su totalidad, y no se que rango estás
identificando como el que debe impimirse entero.
En mi caso el rango que no quiero que salga cortado se llama "Consolidado".
Lamente haber tardado tanto para probar el código.
Nuevamente gracias: Mariano
"Héctor Miguel" escribió en el mensaje
news:#
hola, Mariano !

> ... planilla que se imprime diariamente ... la cantidad de filas varia


... ocupa entre 1 y 5 hojas.
> ... configure "Ajustar a: 1 paginas de ancho por __ de alto" para que


mantenga la proporcion [...]
> ... al final ... un recuadro que deberia salir entero ... a veces sale


cortado ... y los encabezados ... en el medio
> ... tengo que setear la cantidad de hojas en una menos de las que


imprime y tirar nuevamente la impresion.
> ... configurar ... paginas de alto automaticamente ... para que este


recuadro no me salga nunca cortado?

si 'corres' la siguiente macro =>antes de tirar la impresion<= de 'esa


hoja'...
te 'aseguras' de que la impresion se vaya [por default] con '1 pagina de


ancho por __ de alto'
y que [en caso de ser necesario] el ultimo 'salto horizontal' NUNCA


'exceda' de la 'ultima fila' [del 'recuadro']
hago algunos 'supuestos' [como el que la hoja se imprime 'en solitario' NO


'en conjunto con otras']
para [tratar de] 'prevenir horrores' -involuntarios?- [no creo que


'todos'] :((
y si... [quizas] prefieres 'manejar' las acciones en el evento


'_beforeprint' [del libro]...
'habria que...' [des-re]habiltar los eventos y 'detectar' si la hoja que


'se imprime' es 'esa'... etc. [¿comentas?]

saludos,
hector.
en un modulo de codigo 'normal' ==> Sub Ajustar_Paginas()
Dim PT As Integer: PT = ExecuteExcel4Macro("Get.Document(50)")
If PT = 1 Then Exit Sub
Dim Fx As Integer, mS As Variant
With ActiveSheet.PageSetup
.FitToPagesWide = 1: .FitToPagesTall = False
If .PrintArea = "" _
Then Fx = Range(.Parent.UsedRange.Address).Rows.Count _
Else Fx = Range(.PrintArea).Row + Range(.PrintArea).Rows.Count - 1
Names.Add Name:="mS", RefersToR1C1:="=Get.Document(64)"
mS = Evaluate("Index(mS,Column(a:iv),0)"): Names("mS").Delete
If mS(UBound(mS)) < Fx Then .FitToPagesTall = PT - 1
End With
End Sub

Respuesta Responder a este mensaje
#4 Héctor Miguel
23/07/2004 - 05:15 | Informe spam
hola, Mariano !

... macro no me funciona del todo bien. A veces habria que imprimir en 3 hojas y hace que salga en 2.
... no entiendo el codigo en su totalidad, y no se que rango estas identificando como el que debe impimirse entero.
... el rango que no quiero que salga cortado se llama "Consolidado".



'tuve que' suponer algunas variantes y posibilidades que [probablemente] en la realidad sean 'otras' :)
el codigo esta 'basado' en...
- la cuenta de las paginas ['impresas'] del documento =>Get.Document(50)<= [variable 'PT']
- una matriz con los numeros de fila donde 'caen' los saltos de pagina =>Get.Document(64)<= [variable 'mS']
- una 'verificacion' de donde cae 'el ultimo' salto de pagina =>If mS(UBound(mS))...<
conociendo ahora lo del nombre del 'recuadro'... prueba con la siguiente modificacion y... ¿comentas?
saludos,
hector.
=Sub Ajustar_Paginas()
Dim PT As Integer, mS As Variant
With ActiveSheet.PageSetup
.Zoom = False: .FitToPagesWide = 1: .FitToPagesTall = False
PT = ExecuteExcel4Macro("Get.Document(50)")
If PT = 1 Then Exit Sub
Names.Add Name:="mS", RefersToR1C1:="=Get.Document(64)"
mS = Evaluate("Index(mS,Column(a:iv),0)"): Names("mS").Delete
If mS(UBound(mS)) > Range("Consolidado").Row Then .FitToPagesTall = PT - 1
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