Excel: impresión cancelable

¿Cómo podemos cancelar una macro de impresión masiva, de cien copias? ¿Es posible agre­gar alguna instrucción para que el ope­rador pueda detenerla?
SAB, 1 / JUN / 2013

 

Sub CienCopias()

ActiveSheet. PageSetup. PrintArea=”A1:E16”

ActiveWindow.PrintOut Copies:=100

End Sub

Esta macro, luego de establecer el rango por imprimir, ejecuta la impresión propiamente dicha, con cien copias.

Si queremos interrumpir la impresión antes de completarla, hay que tener en cuenta que, cuando se imprime una planilla de Excel (o un documento de Word), el programa le pasa la información al controlador de impre­sión. Es posible que, si interrumpimos la macro cuando ya se han impreso, por ejem­plo, diez copias, el controlador de impresión ya “tenga adentro” otras diez o más copias.

Hecha la aclaración, una posible solución podría ser el siguiente juego de tres macros:

Sub Imprimir()

[F1] = 0

Application.OnKey “{P}”, “Fin”

unacopia

End Sub

Sub UnaCopia()

If [F1] < 100 Then

ActiveSheet.PrintOut

[F1] = [F1] + 1

Application.OnTime Now + 1 / 100000, “UnaCopia”

End If

End Sub

Sub Fin()

MsgBox (“Ejecución cancelada”)

[F1] = 100

Application.OnKey “{P}”

End Sub

La primera macro inicializa un contador de copias en la celda [F1]. Luego establece que, cuando se oprima la tecla de la letra P, se ejecutará la macro Fin. Finalmente, ejecuta la segunda macro, llamada UnaCopia.

Esta segunda macro imprime una copia de la hoja, incrementa el contador de copias y hace una pausa de algo menos de un segundo antes de ejecutarse a sí misma.

En condiciones normales, la macro UnaCopia seguirá llamándose a sí misma hasta que la celda [F1] alcance el tope de cien unidades.

Si, en la pausa que nos deja la instrucción OnTime, oprimimos la tecla de la letra P, se ejecutará la tercera macro (Fin) que, además de mostrar un mensaje dando cuenta de la cancelación, lleva el con­tador a su máximo, por lo que la macro UnaCopia no seguirá ejecutándose. Esta macro también cancela la asignación de la tecla <P> para cancelar la impresión.

 

Estas tres macros permiten imprimir cien copias de la hoja actual, con la posibilidad de interrumpir la impresión al oprimir la tecla.

¡Comparte esta noticia!

Últimos lanzamientos Ver más