Quizás les haya pasado cuando arman una planilla con varias filas y columnas que completan periódicamente y en alguna de esas columnas hay fórmulas que se extienden hacia abajo a lo largo de muchas filas para tenerlas listas en el momento de completar los datos en el resto de las columnas; pero surge un problema y es cuando quieren imprimir la hoja y en éstas se imprimen también todas esas filas parcialmente en blanco. ¿Cómo hacer para que se impriman las filas para las cuales completan todos los datos y nada más?
Una solución a este problema puede ser usando el nombre de rango Área_de_impresión que Excel establece de forma automática. Una segunda variante consiste en usar la macro BeforePrint, que se ejecuta automáticamente al imprimir la hoja:
1. Tomamos las opciones [Herramientas/ Macro/Editor de Visual Basic].
2. Una vez dentro del editor, tomamos las opciones [Ver/Explorador de proyectos].
3. Dentro del explorador, seleccionamos la rama [ThisWorkbook] (o [EsteLibro].
4. Tomamos las opciones [Ver/Código].
Esto abre la ventana de código asociada al libro. En la parte superior de la ventana hay dos listas desplegables. En la lista de la izquierda tenemos que seleccionar [Workbook] y en la de la derecha, [BeforePrint].
Con esto obtenemos la primera y última línea de la macro automática. Nosotros tenemos que completarla de modo que quede así:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
uf = Range(“A10000”).End(xlUp).Row
ActiveSheet.PageSetup.PrintArea = “A1:D” & uf
End Sub
Estamos suponiendo que la hoja tiene cuatro columnas y que la columna donde se completan los datos es la primera. Esta macro detecta la última fila ocupada de esa primera columna y luego establece el rango de impresión desde la celda [A1] hasta la columna [D] y última fila ocupada.
Cada vez que imprimamos la hoja, se ejecutará la macro y ajustará el rango de impresión según las filas completadas en la columna [A].