Visual Basic para Aplicaciones - bloqueo de macros

Life is soft - evento anual de software empresarial
 
Vista:

bloqueo de macros

Publicado por AMAURY (1 intervención) el 29/08/2016 05:26:04
Hola, tengo un problema con mis macros, estaba haciendo un proyecto con varios formulario, y de un momento a otro, resulta que cuando ejecuto un formulario, a los 4 segundos se bloquea todo, luego de darle escape "ESC", es que puedo volver a escribir sobre el formulario o hacer cualquier cosa sobre el libro, me bloquea todo, escritura todo hasta los botones de salir, solo lo suoluciona dando escape, no se si depronto hay un loop infinito en mis codigos que produzca este bloqueo, no tengo ninguna macro que bloquee las macros o botones, por eso no hay un codigo que yo diga aquí está el loop, pero se me hace muy pero muy raro.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

bloqueo de macros

Publicado por Antoni Masana (498 intervenciones) el 30/08/2016 13:33:51
Cuando ejecuta una macro hace solo eso, ejecutar la macro y no hace nada más.
Las macros deben hacer cosas cortas y rápidas para no bloquear el ordenador.
Pero no siempre es así de sencillo y a veces tiene que hacer procesos largos y complejos.
Un proceso largo y complejo puede tardar 1 minuto y durante este minuto no responde a ninguna tecla.

Te preguntadas :
- ¿Por que?
- ¿Cómo es que otros procesos lo hacen y no les pasa y al mío si?

Para que no te pase debes poner la instrucción DoEvents en tu código y si tienes un bucle dentro del bucle y donde se ejecute siempre.

Y esto es mano de santo.

¿Que es y que hace?

Esto es un comando que le dice al procesador de Windows "Deja de ejecutar mi macro y mira si tienes que ejecutar otro proceso o responder a una tecla" y Windows que es muy obediente hace esto exactamente, aparca tu macro ejecuta lo que sea y vuelve a la macro donde lo dejo.

No afecta al resultado de la macro, ni debes preocuparte de nada más. Si pones bien el comando todo volverá a funcionar mientras ejecutas la macro.

Y sobre la tecla ESC, no es que después de darle a la tecla muchas canceles la macro, es que esta ya finalizo.

Saludos
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar