Hojas de cálculo en Excel - página principal

Evitar la cancelación de un macro

Normalmente, cuando ejecutamos un macro que realiza muchas operaciones, y tarda un cierto tiempo, podemos cancelarlo, pulsando la tecla ESC. Si deseamos que no se pueda cancelar el macro, nos bastará con incluir al principio de nuestro macro, esta línea:


'Desactivamos las teclas de cancelación de macros
Application.EnableCancelKey = xlDisabled

Debemos tener cuidado a la hora de utilizar esa línea, pues si estamos en pruebas, y nuestro macro no está completamente terminado, si hemos cometido algún error en el mismo, podemos perder el trabajo que tengamos a medias, ...estoy pensando por ejemplo, en algún error de programación del macro, por el que entramos en un bucle infinito. Si no podemos cancelar el macro, tendremos que terminar el proceso para que nuestra aplicación excel se cierre, pues no responderá a nuestras pulsaciones de la tecla ESC, para salir de ese maldito bucle, y que nos permita volver al macro.

Solo cuando tengamos probado nuestro macro, y estemos seguros de que funciona correctamente, es aconsejable utilizar esa línea al principio de nuestro código. En algunos casos, y especialmente cuando nuestro macro realiza muchas operaciones, es aconsejable incluir esa línea, porque así evitaremos que el usuario cancele el macro, y los resultados que obtenga no sean los esperados, al no haberse completado todas las operaciones que debían realizarse.



3 comentarios:

Anónimo dijo...

Hola, estoy usando tu ejemplo para poder bloquear la macro...lo que yo quiero es que no puedan cerrar la UserForm hasta que haga todo lo que debe (osea no poder pulsar la "x" de cerrar) y pongo lo que tu pusiste y me sale error: "invalid outside procedure"

que pasa?

El pilt®afilla - www.3piesalgato.com dijo...

Mírate esto: impedir que se cierre un Userform

Saludos

Unknown dijo...

Hola buenas tardes, quiero ver si me puedes ayudar.
Estoy programando una encuesta en macro para poder tener toda mi base de datos en una hoja de excel y Tengo un boton dentro de un userform que al momento de dar click manda toda la informaciòn de la encuesta a un renglon de la hoja. Tengo 20 preguntas con 6 posibles respuestas cada una.
Mi problema esta en que me manda un mensaje de error de compilaciòn: procedimiento demasiado largo, investigando un poco encontre que tengo que dividir el procedimiento pero no lo puedo hacer.
Me podrìas ayuadar?
Gracias.