Cómo mostrar un mensaje en la barra de estado de Excel usando VBA

Anonim

La barra de estado en Excel se puede utilizar como monitor de código. Cuando su código VBA es extenso y realiza varias tareas usando VBA, a menudo deshabilita la actualización de la pantalla para que no vea que la pantalla parpadea. Pero debido a esto, no llega a saber qué está pasando en su código.

Si no sabe dónde está la barra de estado en Excel, aquí está:

Puede utilizar una barra de estado de Excel para obtener información de Excel sin interferir en la ejecución del código. Puede mostrar las etapas de su Marco en la barra de estado o usarlo como barra de progreso.

Código VBA para mostrar mensajes en la barra de estado de Excel

Application.StatusBar = "Mensaje"

StatusBar es una propiedad del objeto Application que toma texto como entrada.

En este ejemplo, solo estoy mostrando qué función se está ejecutando …

Sub DisplayMessageOnStatusBar () Application.ScreenUpdating = False Application.StatusBar = "Llamando a la función uno" 'llamar a function_1 Application.Wait (Now + TimeValue ("00: 00: 2")) Application.StatusBar = "Llamando a la función dos" 'Llamar a function_2 Application.Wait (Now + TimeValue ("00: 00: 2")) Application.StatusBar = "Llamando a la función Tres" 'Llamar a function_3 Application.Wait (Now + TimeValue ("00: 00: 2")) Application.StatusBar = "" Application.ScreenUpdating = True End Sub 

En este ejemplo, la actualización de la pantalla se establece en Falso al principio.

Ahora, antes de llamar a la función_1, estoy mostrando un mensaje que llama a la función uno.

Application.Wait (Now + TimeValue ("00: 00: 2")) esta línea de código es solo para falsificar una llamada de función larga para que tenga 2 segundos para ver esto en mi barra de estado.

Lo hice antes de todas las llamadas a funciones y al final, puse la barra de estado en blanco (“”).

Los mensajes de la barra de estado son bastante útiles para mostrar mensajes mientras se trabaja con un código extenso. Cuando su código pasa por múltiples etapas o ejecuta un ciclo largo, puede mostrarlo en la barra de estado para que el usuario sepa que el código se está ejecutando. De lo contrario, el usuario puede pensar que el sistema se ha colgado o algo así.

Ahora puede obtener información de manera inteligente en la barra de estado usando VBA de Excel 2016, 2013, 2010 y 2007 usando esta línea.

POSTE ANTIGUO

Ciertas macros / códigos de vba tardan mucho en ejecutarse o ejecutar las acciones necesarias. Si ha desactivado la actualización de la pantalla usando la línea Application.ScreenUpdating = Falso al principio de su código, si algún usuario ejecuta el código, no sabrá qué está pasando y pensará que el sistema informático no responde. Puede pedirle al código que muestre un mensaje de estado en la barra de estado para que el usuario esté informado sobre el estado actual del código.

Aquí hay un código simple que da un cuadro de mensaje que muestra los valores en la columna A desde la fila 2 hasta la última fila. La barra de estado mostrará el mensaje "Macro en ejecución" mientras el código se está ejecutando, y una vez que el código esté listo, mostrará "Listo", que es uno de los mensajes predeterminados de Excel.

Opción Explícita Sub macro1 () Dim i As Long, lrow As Long Application.ScreenUpdating = False Application.DisplayAlerts = False Application.DisplayStatusBar = True With Worksheets (“Sheet1”) lrow = .Range (“A” & .Rows.Count) .End (xlUp) .Row For i = 2 to lrow Application.StatusBar = “Macro running” Msgbox .Range (“A” & i) .Value Next i End With Application.StatusBar = “” Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub 

Para copiar el código anterior a su archivo,

  • Presione Alt + F11 en el teclado.
  • En el lado izquierdo, verá Objetos de Microsoft Excel.
  • Haga clic derecho y seleccione Insertar.
  • Luego haga clic en Módulo.
  • Copie el código en la ventana de código de la derecha.

Puede ver el código publicado en el módulo a continuación:

Ahora entendamos qué hace cada línea del código:

Entonces, primero configuramos DISPLAYSTATUSBAR en verdadero y luego configuramos el mensaje para la barra de estado. Una vez que usamos Application.StatusBar = "" al final del código, volverá al mensaje predeterminado de Excel que es LISTO.

Aquí hay una imagen de la barra de estado mientras se ejecuta la macro.

Una vez finalizada la macro, la barra de estado se mostrará de la siguiente manera:

De manera similar, puede actualizar la barra de estado en diferentes partes del código, para que el usuario sepa qué está sucediendo mientras se ejecuta la macro. A veces, puede haber una o más macros que cubran múltiples procesos y esta barra de estado será útil para saber a qué proceso ha llegado la macro.

Si te gustaron nuestros blogs, compártelo con tus amigos en Facebook. Y también puedes seguirnos en Twitter y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar, complementar o innovar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico

Articulos populares:

50 accesos directos de Excel para aumentar su productividad

Cómo utilizar la función BUSCARV en Excel

Cómo usar la función CONTAR.SI en Excel

Cómo utilizar la función SUMIF en Excel