¿Es mejor mostrar ProgressBar UserForms en VBA como modal o sin modo?

¿Es mejor mostrar ProgressBar UserForms en VBA como modal o sin modo? ¿Cuáles son las mejores prácticas para desarrollar indicadores de progreso en VBA?

Los formularios de usuario sin modo requieren el uso deApplication.Interactive = False, mientras que Modal UserForms, por su propia naturaleza, bloquea cualquier interacción con la aplicación hasta que el procedimiento principal haya finalizado o se cancele.

SiApplication.Interactive = False se utiliza, sin embargo, la tecla Esc interrumpe la ejecución del código, por lo que el uso deApplication.EnableCancelKey = xlErrorHandler y manejo de errores (Err.Number = 18) es necesario tanto en UserForm como en el procedimiento de llamada.

Los procedimientos de llamadas intensivas en recursos también pueden resultar enCommandButton_Click yUserForm_Activate eventos que fallan en UserForms sin modo.

En general, los indicadores de progreso que usan formularios de usuario modales parecen más simples, porque el código que se está ejecutando está completamente contenido en el módulo UserForm, y hay menos necesidad de pasar variables.

Sin embargo, el problema con el uso de UserForms modales para los indicadores de progreso es que se requiere un módulo UserForm separado para cada procedimiento que necesite un indicador de progreso, porque el procedimiento de llamada debe estar dentro del procedimiento UserForm_Activate.

Por lo tanto, si bien es posible tener un único indicador de progreso reutilizable en un UserForm sin modo, será menos confiable que ejecutar el código desde múltiples formularios de usuario modales.

¿Qué camino es mejor?

¡Gracias!

Respuestas a la pregunta(5)

Su respuesta a la pregunta