Macro para imprimir una tabla que se actualiza periódicamente

11/05/2006 - 00:50 por Contaduria \(MVP\) | Informe spam
Hola Amigos:

Quiero hacer una macro que me permita imprimir un rango de datos de una
tabla. Día a día se van actualizando los registros de dicha tabla, por lo
que, por ejemplo, al fin de un día nos encontramos con que el último
registro se encuentra en la fila 250, al día siguiente el último registro
esta en la fila 400, y al siguiente en la fila 140, y asi va variando día a
día.
Probe con una macro con el siguiente codigo:

Range("A1:G1000").Select
Selection.PrintOut Copies:=1, Collate:=True

Pero como era de esperarse me imprime tambien los registros en blanco con el
consiguiente desperdicio de papel. Como puedo hacer para que el programa me
reconozca cual es la última fila con resistros e imprima la tabla solo hasta
ahi?
Desde ya muchísimas gracias.
Contaduria

Preguntas similare

Leer las respuestas

#11 Contaduria \(MVP\)
11/05/2006 - 15:01 | Informe spam
Hola

Les agradezco mucho sus respuestas. Estuve provando ambos códigos y
funcionan. Pero ahora tengo una dificultad adicional:
La tabla con registros se compone de la siguiente manera: de la columna A a
la E hay datos que se van ingresando manualmente como fecha, importe,
detalle, etc y si no se ingresó ningún registro la celda esta vacia. Por
otra parte, en las columnas E y F hay fórmulas que existen hasta la fila
1000 de manera que al ir completando datos aparece su resultado
automáticamente. Luego, los registros que se van eliminando no se suprimen
mediante eliminar la fila sino que se filtran y se borra su contenido. Luego
los registros son ordenados por la función Ordenar del menu Datos de manera
que los registros vacios o en blanco quedan a lo último. Ahora, como las
celdas de las columnas E y F contienen formúlas en los registros vacios
arrojan un "0" como resultado, y salen impresas como si estuvieran usadas,
lo cual era de esperarse porque de hecho en realidad no estan "vacias".
No se si me he explicado correctamente. Cualquier cosa preguntenme.
Muchisimas gracias

"Manuel Romero" <m.r.o.m.e.r.o.p@@@@h.o.t.m.a.i.lc.o.m.> escribió en el
mensaje news:
Range("A1").CurrentRegion.PrintOut

> Hola Amigos:
>
> Quiero hacer una macro que me permita imprimir un rango de datos de una
> tabla. Día a día se van actualizando los registros de dicha tabla, por


lo
> que, por ejemplo, al fin de un día nos encontramos con que el último
> registro se encuentra en la fila 250, al día siguiente el último


registro
> esta en la fila 400, y al siguiente en la fila 140, y asi va variando


día a
> día.
> Probe con una macro con el siguiente codigo:
>
> Range("A1:G1000").Select
> Selection.PrintOut Copies:=1, Collate:=True
>
> Pero como era de esperarse me imprime tambien los registros en blanco


con el
> consiguiente desperdicio de papel. Como puedo hacer para que el programa


me
> reconozca cual es la última fila con resistros e imprima la tabla solo


hasta
> ahi?
> Desde ya muchísimas gracias.


Respuesta Responder a este mensaje
#12 Contaduria \(MVP\)
11/05/2006 - 15:03 | Informe spam
Hola

Les agradezco mucho sus respuestas. Estuve provando ambos códigos y
funcionan. Pero ahora tengo una dificultad adicional:
La tabla con registros se compone de la siguiente manera: de la columna A a
la E hay datos que se van ingresando manualmente como fecha, importe,
detalle, etc y si no se ingresó ningún registro la celda esta vacia. Por
otra parte, en las columnas E y F hay fórmulas que existen hasta la fila
1000 de manera que al ir completando datos aparece su resultado
automáticamente. Luego, los registros que se van eliminando no se suprimen
mediante eliminar la fila sino que se filtran y se borra su contenido. Luego
los registros son ordenados por la función Ordenar del menu Datos de manera
que los registros vacios o en blanco quedan a lo último. Ahora, como las
celdas de las columnas E y F contienen formúlas en los registros vacios
arrojan un "0" como resultado, y salen impresas como si estuvieran usadas,
lo cual era de esperarse porque de hecho en realidad no estan "vacias".
No se si me he explicado correctamente. Cualquier cosa preguntenme.
Muchisimas gracias

"Héctor Miguel" escribió en el mensaje
news:#
hola, 'anonimo/a' !

> ... macro que me permita imprimir... una tabla... actualizando los


registros de dicha tabla
> ... el ultimo registro se encuentra en la fila 250, al dia siguiente...


en la fila 400, y al siguiente en la fila 140 [...]

una alternativa mas...
si suponemos que 'el rango real' va de/creciendo por razones de


ELIMINAR/agregar contenidos en el mismo...
[OJO: NO si se mantienen algunos formatos 'personalizados' aplicados a las


celdas 'vacias']...
prueba con instrucciones +/- como la siguiente:
Sub Imprime_el_rango_usado()
With ActiveSheet
.UsedRange
.PrintOut
End With
End Sub

comentas [si hubiera] algun detalle adicional ?
saludos,
hector.


Respuesta Responder a este mensaje
#13 Contaduria \(MVP\)
11/05/2006 - 15:06 | Informe spam
En la respuesta anterior cuando dije que las formulas estaban en las
columnas E y F quise decir F y G. Los datos manuales estan desde la A hasta
la E. Perdon
Saludos!

"Manuel Romero" <m.r.o.m.e.r.o.p@@@@h.o.t.m.a.i.lc.o.m.> escribió en el
mensaje news:
Range("A1").CurrentRegion.PrintOut

> Hola Amigos:
>
> Quiero hacer una macro que me permita imprimir un rango de datos de una
> tabla. Día a día se van actualizando los registros de dicha tabla, por


lo
> que, por ejemplo, al fin de un día nos encontramos con que el último
> registro se encuentra en la fila 250, al día siguiente el último


registro
> esta en la fila 400, y al siguiente en la fila 140, y asi va variando


día a
> día.
> Probe con una macro con el siguiente codigo:
>
> Range("A1:G1000").Select
> Selection.PrintOut Copies:=1, Collate:=True
>
> Pero como era de esperarse me imprime tambien los registros en blanco


con el
> consiguiente desperdicio de papel. Como puedo hacer para que el programa


me
> reconozca cual es la última fila con resistros e imprima la tabla solo


hasta
> ahi?
> Desde ya muchísimas gracias.


Respuesta Responder a este mensaje
#14 Contaduria \(MVP\)
11/05/2006 - 15:07 | Informe spam
En la respuesta anterior cuando dije que las formulas estaban en las
columnas E y F quise decir F y G. Los datos manuales estan desde la A hasta
la E. Perdon
Saludos!

"Héctor Miguel" escribió en el mensaje
news:#
hola, 'anonimo/a' !

> ... macro que me permita imprimir... una tabla... actualizando los


registros de dicha tabla
> ... el ultimo registro se encuentra en la fila 250, al dia siguiente...


en la fila 400, y al siguiente en la fila 140 [...]

una alternativa mas...
si suponemos que 'el rango real' va de/creciendo por razones de


ELIMINAR/agregar contenidos en el mismo...
[OJO: NO si se mantienen algunos formatos 'personalizados' aplicados a las


celdas 'vacias']...
prueba con instrucciones +/- como la siguiente:
Sub Imprime_el_rango_usado()
With ActiveSheet
.UsedRange
.PrintOut
End With
End Sub

comentas [si hubiera] algun detalle adicional ?
saludos,
hector.


Respuesta Responder a este mensaje
#15 Manuel Romero
11/05/2006 - 15:34 | Informe spam
Range(Range("A1"),Range("A1").End(xlDown).End(xlToRight)).PrintOut
Range(Range("A1"),Range("A1").End(xlDown).Offset(0,6)).PrintOut

Ambas te funcionan si no en la columna A no hay espacios vacios, la
primera hasta el final de la ultima fila si no hay vacios (asumo que en
H no hay nada) y la segunda especificamente hasta la columna G

En la respuesta anterior cuando dije que las formulas estaban en las
columnas E y F quise decir F y G. Los datos manuales estan desde la A hasta
la E. Perdon
Saludos!

"Manuel Romero" <m.r.o.m.e.r.o.p@@@@h.o.t.m.a.i.lc.o.m.> escribió en el
mensaje news:
Range("A1").CurrentRegion.PrintOut

Hola Amigos:

Quiero hacer una macro que me permita imprimir un rango de datos de una
tabla. Día a día se van actualizando los registros de dicha tabla, por lo
que, por ejemplo, al fin de un día nos encontramos con que el último
registro se encuentra en la fila 250, al día siguiente el último registro
esta en la fila 400, y al siguiente en la fila 140, y asi va variando día a
día.
Probe con una macro con el siguiente codigo:

Range("A1:G1000").Select
Selection.PrintOut Copies:=1, Collate:=True

Pero como era de esperarse me imprime tambien los registros en blanco con
el consiguiente desperdicio de papel. Como puedo hacer para que el programa
me reconozca cual es la última fila con resistros e imprima la tabla solo
hasta ahi?
Desde ya muchísimas gracias.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida