Verán que también (dentro del mismo menú) existe "borrar area de impresión", lo cual quitará cualquier area activa, volviendo todo a los parámetros comunes de impresión.
De la forma descripta creamos un area "fija", es decir, establecemos desde que rango hasta cual otro deberá imprimir Excel. El tema es poder crear un área "dinámica", que varíe de acuerdo al tamaño de nuestra tabla.
Y aquí utilizaremos una herramienta que ya hemos tratado con anterioridad: dar nombre a los rangos.
Supongamos que mi tabla llega hasta la fila nro 9:
Si utilizo lo visto hasta el momento, y para imprimir solamente esa tabla, debo seleccionar ahora el rango A1:C9 y establecer el área. Si luego agrego mas registros (por ejemplo hasta la fila 15), tendré que borrar el area existente y crear una nueva, que sea: A1:C15. Pero hay una forma de hacer esto, y sin macros.
Excel se reserva ciertos nombres para sus rangos (veremos otros en futuras entregas), y si, adivinaron, justo tiene un nombre que se llama "Area_de_Impresion". Jugando con el y algunas funciones, haremos que se comporte de forma dinámica, para automatizar la tarea y ahorrarnos unos buenos minutos de trabajo.
Vamos a necesitar de una celda auxiliar, que bien puede ser F1.
Allí ingresaremos la siguiente función:
="A1:C"&CONTARA(A:A)
Estoy concatenando: el rango en donde comienza la tabla (A1), con la columna C (que es donde termina nuestra tabla) y con la función CONTARA() cuento la cantidad de celdas ocupadas, para determinar así el número de filas:
Luego de esto nos dirigimos al menú Insertar / Nombre / Definir y (si no aparece de forma predeterminada) agregamos el nombre "Área_de_Impresión". Mucho cuidado con los acentos, si no los ponen... no funciona:
vean como completé el cuadro "Se refiere a: "... allí coloqué la función INDIRECTO(), haciendo referencia al rango en donde tenemos armada la fórmula que va creciendo a medida que colocamos mas registros.
Si observamos la siguiente imagen veremos como aparece una línea punteada a su alrrededor (justo como indicamos en F1), típica señal del area que abarcamos:
Vamos a colocar un par de registros mas y veamos como esa linea punteada cambia automaticamente:
yep. ahora el area de impresión llega a la fila 14, sin que debamos modificar nada.
La función ingresada en F1 puede tener infinitas variantes. Por ejemplo:
aqui especificamos nosotros (en G2 y H2) el tamaño del area de impresión, ingresando el principio y fin del mismo.
Y así indefinidamente, adaptando las funciones a nuestro proyecto. Como siempre recalco, ojo con la cantidad de datos presente en el libro y las funciones, ya que estas últimas pueden ralentizar a Excel si tenemos muchos registros.
Para evitar eso, una buena macro:
Sub CrearAreaDeImpresion()
Dim Uf As Long
'almaceno el último nro de fila ocupada por un registro:
Uf = Cells(Cells.Rows.Count, 1).End(xlUp).Row
'quito cualquier area de impresion existente:
ActiveSheet.PageSetup.PrintArea = ""
'selecciono el rango:
Range("A1:C" & Uf).Select
'y ahora paso el Address de la seleccion como valor
'para establecer el area de impresion:
ActiveSheet.PageSetup.PrintArea = Selection.Address
End Sub
Y es todo por hoy. Espero que les sea de utilidad en su trabajo.
Comentarios
Publicar un comentario