Excel: Rango de impresión

Dos consejos útiles para imprimir correctamente los archivos de Excel.
DOM, 16 / JUN / 2013

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 comple­tar 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 seleccio­nar [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.

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.

Comentarios
¡Comparte esta noticia!

Últimos lanzamientos Ver más

7 Comments

  1. pablo hernan arancibia arancib dice:

    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

  2. pablo hernan arancibia arancib dice:

    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

  3. pablo hernan arancibia arancib dice:

    La fila ActiveSheet.PageSetup.PrintArea = “A1:D” & uf me sale en rojo, cuando depuro me dice que hay un error de sintaxis

  4. Paco Rabbana dice:

    Hola, como puedo agregar un check box al final de cada fila para que me imprima todos los datos de esa fila?

  5. Roberto dice:

    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.

  6. Roberto dice:

    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.

  7. omarmdz dice:

    excelente tu solución me sirvió de mucho

Leave a Reply