
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].

Esta macro se ejecuta automáticamente al imprimir la hoja y establece el rango de impresión según las celdas completadas en la primera columna. En este caso, hasta la octava fila.
Resolví el problema, se trataba de las comillas, que al copiarlas del ejemplo dado a la hoja de programación, estas se traspasan con otro formato y el depurador no las reconoce, por eso me dejaba en rojo la primera línea, reescribí las comillas y problema solucinado
Resolví el problema, se trataba de las comillas, que al copiarlas del ejemplo dado a la hoja de programación, estas se traspasan con otro formato y el depurador no las reconoce, por eso me dejaba en rojo la primera línea
La fila ActiveSheet.PageSetup.PrintArea = “A1:D” & uf me sale en rojo, cuando depuro me dice que hay un error de sintaxis
Hola, como puedo agregar un check box al final de cada fila para que me imprima todos los datos de esa fila?
la fila ActiveSheet.PageSetup.PrintArea = “A1:D” & uf me sale en rojo, o sea como que no esta bien, le falta algo.
lo que yo quiero hacer es exactamente lo que decís. tengo una planilla con formulas y quiero que se impriman solo las que tienen resultados, no las que están en blanco.
Tengo un problema con la fila ActiveSheet.PageSetup.PrintArea = “A1:D” & uf de esa macro.
tengo excel 2010 y el paso previo me difiere un poco de lo que se muestra en el gráfico.
en lugar de tener Workbook a la izquierda y beforeprint a la derecha tengo todo a la derecha y a la izquierda tengo 2 opciones:
general o Worksheet. pero con ningún a de las 2 funciona.
me podrías dar una mano que no entiendo mucho de Macros.
gracias de antemano.
excelente tu solución me sirvió de mucho