Mmaresma/ agosto 12, 2016/ Como se hace en Excel, Excel Avanzado

En este artículo voy a tratar uno de los temas que más preguntas he visto por los foros de Excel.

La famosa ventana del MsgBox, dónde ésta, desaparezca a un tiempo establecido por nosotros, además de capturar el valor del botón seleccionado por el usuario, en el caso de que lo pulse.

No me refiero a un “Form” que capture resultados, me refiero a la propia ventana del MsgBox.

En ocasiones, necesitamos informar al usuario con una barra de proceso de como está la situación, más que nada para que no se ponga “nervioso” en procesos largos,  o se piense que el Excel se ha quedado “colgado”.

En ésta ocasión, es más para ir informando de la situación al propio usuario y que él (o nosotros, los programadores, si estamos realizando macros y pruebas) pueda detener el proceso cuando quiera.

Para ello, he creado una función UDF llamada “MsgBoxConTiempo”. Los parámetros son los siguientes:

MsgBoxConTiempo_1

Dónde:

  •  strTexto es el  Texto del MsgBox.
  •  strTitulo es el  Título, es decir, la parte superior del MsgBox.
  • EnumBotones son los tipos de botones e iconos disponibles.
  • intTiempoEnSegundos: Tiempo en segundos de espera.

Algo parecido a la siguiente imagen, si ponemos por ejemplo:

VariableLong = MsgBoxConTiempo(“Texto del MsgBox”, “Título de la Ventana”, SiNoyCancelarConStopconlacruz, 10)

MsgBoxConTiempo_2

Los valores devueltos, en el caso de pulsar algún botón, son los valores propios de un MsgBox con dos añadidos.

MsgBoxConTiempo_3

En el fichero de ejemplo que aporto, tenemos tres procesos (pequeños) para poder ver su funcionamiento. Básicamente lo que realiza es que,  entre proceso y proceso, da la opción a parar, además de informar al usuario al inicio. Si el usuario pulsa el botón el proceso parará, caso contrario, el proceso continúa con el tiempo establecido.

MsgBoxConTiempo

Espero que os guste, 🙂

Comentario

Comentario

Share this Post