Macro para imprimir rangos

01/09/2009 - 19:13 por Jorge | Informe spam
¿Como puedo hacer una macro para imprimir, pero que me discrimine celdas
ocupadas o vacias y asi determinar el rango a imprimir. Por ejemplo, si
C52="" (o si C10<>""), imprimir el rango A1:G41; si ademas esta ocupada la
celda c52, entonces el rango a imprimir será A1:G83, etc. En resumen, que
imprima solo las hojas en que existan datos en la columna C y dentro de los
rangos especificados. Ademas, esta macro, me gustaria que fuera "dentro y
antes" que otra
de forma que junto con ordenar la impresión, se ejecute esta segunda macro,
la que se asignaria a un botón de control, que podria denominarse "Imprimir y
Guardar". Gracias.-

Preguntas similare

Leer las respuestas

#1 Jorge
14/09/2009 - 16:19 | Informe spam
Hola Hector Miguel: Redefini el nombre Area_de_Impresión copiando
=desref($a$1:$g$1;;;$a$10;); modifique las tres comas (,) por puntos y comas
(;) y la última coma idem. Cambió el nombre a esnúmero (lo que imagino no
tiene ninguna importancia, ya que le puedo dar otro), pero el problema es que
me arroja una referencia circular. ¿Como lo soluciono? Gracias. Saludos
Jorge.-


"Héctor Miguel" escribió:

hola, Jorge !

> Las celdas estaran efectivamente vacias hasta que ingrese un texto
> (ya que lo ingreso sin separador de miles, pero siempre seran digitos y no letras) ...

prueba con el siguiente procedimiento:
OJO: estoy asumiendo que puedes utilizar las celdas del rango [A1:A10]
si no es asi, utiliza otro rango y la ultima celda sera la referencia para (re)definir el area de impresion

1) utiliza las siguientes formulas en las celdas indicadas:
[A1] =desref(c$10,(fila()-1)*42,)
=> copiar hasta [A9]
[A10] =(coincidir(0,a1:a9,0)-1)*42

2) crea/define/... un area de impresion (cualquiera, no importa en este momento)

3) (re)define ese nombre (Área_de_impresion o como quede)
aplicando la siguiente formula en el cuadro de edicion: "se refiere a:"
=desref($a$1:$g$1,,,$a$10,)

solo cambia el separador de argumentos (mi sistema usa a la coma ',' NO al punto y coma ';' :D)

saludos,
hector.



Respuesta Responder a este mensaje
#2 Héctor Miguel
15/09/2009 - 01:40 | Informe spam
hola, Jorge !

... Redefini el nombre Area_de_Impresion copiando =desref($a$1:$g$1;;;$a$10;)
modifique las tres comas (,) por puntos y comas (;) y la ultima coma idem.
Cambio el nombre a esnumero (lo que imagino no tiene ninguna importancia, ya que le puedo dar otro)
pero el problema es que me arroja una referencia circular. Como lo soluciono? ...



- como esta eso de "cambio el nombre a es numero"... (???)
a) te refieres a que "agregaste" el nombre (nuevo) "esnumero" a los nombre existentes en el libro ?
b) o realmente REdefiniste el nombre "area_de_impresion" (???)

la referencia circuar es cuando aplicas formulas/funciones/... con referencias circulares EN las celdas de la hojo
(no cuando se trata de nombres, al menos, no que me haya tocado "sufrir")

saludos,
hector.

__ OP __
Las celdas estaran efectivamente vacias hasta que ingrese un texto
(ya que lo ingreso sin separador de miles, pero siempre seran digitos y no letras) ...



prueba con el siguiente procedimiento:
OJO: estoy asumiendo que puedes utilizar las celdas del rango [A1:A10]
si no es asi, utiliza otro rango y la ultima celda sera la referencia para (re)definir el area de impresion

1) utiliza las siguientes formulas en las celdas indicadas:
[A1] =desref(c$10,(fila()-1)*42,)
=> copiar hasta [A9]
[A10] =(coincidir(0,a1:a9,0)-1)*42

2) crea/define/... un area de impresion (cualquiera, no importa en este momento)

3) (re)define ese nombre (à
Respuesta Responder a este mensaje
#3 Jorge
15/09/2009 - 17:28 | Informe spam
Hola hector Miguel: Lo que hice fue lo siguiente: en A1
DESREF(C$10;(FILA()-1)*42;), la que copie exactamente igual hasta A9; en A10
puse =(COINCIDIR(0;A1:A9;0)-1*42) (Excel corrigio el parentesis de cierre);
luego cree un bloque o rango cualquiera (a1:g42), luego fui a Diseño de
Pagina, Area de Impresión, Establecer Area de Impresión y en el cuadro de
Nombre aparece Area_de_Impresión y a la derecha de dicho cuadro, barra de
formulas (fx) copie ÞSREF($A$1:$G$1;$A$10;). Nota que el programa no me
dejo poner tres puntos y comas despues del rango $A$1:$g$1. Si hago click en
A1 en el cuadro de nombres aparece A1 y en el cuadro de formulas, aparece
ÞSREF($A$1:$G$1;$A$10;) y si hago doble click sobre el mismo, me cambia en
el cuadro de nombre a ESNUMERO, aunque me mantiene la formula. ¿Cual paso me
salte o hice mal. Te cuento que a1:a9 muestra 0 y A10 -41.- Saludos


"Héctor Miguel" escribió:

hola, Jorge !

> ... Redefini el nombre Area_de_Impresion copiando =desref($a$1:$g$1;;;$a$10;)
> modifique las tres comas (,) por puntos y comas (;) y la ultima coma idem.
> Cambio el nombre a esnumero (lo que imagino no tiene ninguna importancia, ya que le puedo dar otro)
> pero el problema es que me arroja una referencia circular. Como lo soluciono? ...

- como esta eso de "cambio el nombre a es numero"... (???)
a) te refieres a que "agregaste" el nombre (nuevo) "esnumero" a los nombre existentes en el libro ?
b) o realmente REdefiniste el nombre "area_de_impresion" (???)

la referencia circuar es cuando aplicas formulas/funciones/... con referencias circulares EN las celdas de la hojo
(no cuando se trata de nombres, al menos, no que me haya tocado "sufrir")

saludos,
hector.

__ OP __
>>> Las celdas estaran efectivamente vacias hasta que ingrese un texto
>>> (ya que lo ingreso sin separador de miles, pero siempre seran digitos y no letras) ...
>>
>> prueba con el siguiente procedimiento:
>> OJO: estoy asumiendo que puedes utilizar las celdas del rango [A1:A10]
>> si no es asi, utiliza otro rango y la ultima celda sera la referencia para (re)definir el area de impresion
>>
>> 1) utiliza las siguientes formulas en las celdas indicadas:
>> [A1] =desref(c$10,(fila()-1)*42,)
>> => copiar hasta [A9]
>> [A10] =(coincidir(0,a1:a9,0)-1)*42
>>
>> 2) crea/define/... un area de impresion (cualquiera, no importa en este momento)
>>
>> 3) (re)define ese nombre (àrea_de_impresion o como quede)
>> aplicando la siguiente formula en el cuadro de edicion: "se refiere a:"
>> =desref($a$1:$g$1,,,$a$10,)
>>
>> solo cambia el separador de argumentos (mi sistema usa a la coma ',' NO al punto y coma ';' :D)



Respuesta Responder a este mensaje
#4 Héctor Miguel
16/09/2009 - 00:51 | Informe spam
hola, Jorge !

Lo que hice fue lo siguiente: en A1 DESREF(C$10;(FILA()-1)*42;), la que copie exactamente igual hasta A9
en A10 puse =(COINCIDIR(0;A1:A9;0)-1*42) (Excel corrigio el parentesis de cierre)



=> esta formula no esta bien, compara con la formula de la propuesta original:
=> la que corrigio: =(COINCIDIR(0;A1:A9;0)-1*42)
=> la que funciona: =(COINCIDIR(0;A1:A9;0)-1)*42

nota: excel "corrigio" el parentesis de cierre (probablemente) por que NO lo pusiste tu (?) y no podia adivinar con exactitud (?)

luego cree un bloque o rango cualquiera (a1:g42)
luego fui a Diseno de Pagina, Area de Impresion, Establecer Area de Impresion
y en el cuadro de Nombre aparece Area_de_Impresion y a la derecha de dicho cuadro
barra de formulas (fx) copie ÞSREF($A$1:$G$1;$A$10;).



=> este procedimiento tampoco es el sugerido (re-definir el nombre) en la propuesta original...
=> donde debes "entrar" la formula, NO es en la "barra de formulas" si no...
=> en el cuadro de referencias desde (menu:) insertar / nombre / definir...
-> seleccionas el nombre (area_de_impresion)
-> la formula es en: "se refiere a:"

si cualquier duda... comentas ?
saludos,
hector.

__ OP __
Las celdas estaran efectivamente vacias hasta que ingrese un texto
(ya que lo ingreso sin separador de miles, pero siempre seran digitos y no letras) ...



prueba con el siguiente procedimiento:
OJO: estoy asumiendo que puedes utilizar las celdas del rango [A1:A10]
si no es asi, utiliza otro rango y la ultima celda sera la referencia para (re)definir el area de impresion

1) utiliza las siguientes formulas en las celdas indicadas:
[A1] =desref(c$10,(fila()-1)*42,)
=> copiar hasta [A9]
[A10] =(coincidir(0,a1:a9,0)-1)*42

2) crea/define/... un area de impresion (cualquiera, no importa en este momento)

3) (re)define ese nombre (Área_de_impresion o como quede)
aplicando la siguiente formula en el cuadro de edicion: "se refiere a:"
=desref($a$1:$g$1,,,$a$10,)

solo cambia el separador de argumentos (mi sistema usa a la coma ',' NO al punto y coma ';' :D)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida