En muchas ocasiones, cuando ejecutamos una macro en Excel se producen parpadeos mientras se está ejecutando. Esto hace que la macro se ejecute más lentamente.
Esto es debido a que la pantalla se está refrescando continuamente durante la ejecución de cada instrucción que compone la macro. Por ello, cuando más instrucciones y más «grande» sea nuestra macro.
Además provoca una ejecución más molesta para el usuario, ya que está viendo, aunque de forma muy rápida, lo que está haciendo la macro mientras se está ejecutando.
Esto no es algo deseable cuando implantamos nuestra macro.
Pero esto lo podemos evitar muy fácilmente con la propiedad Application.ScreenUpdating .
Evitar parpadeos con Application.ScreenUpdating
La propiedad Application.ScreenUpdating es la que indica a la pantalla que se refresque después de cada instrucción de la macro. ç
Por tanto, lo que nos interesa es que antes de ingresar el código de la macro esta propiedad tenga el valor de FALSE (falso). Después del código de la macro volvemos a establecer el valor de TRUE (verdadero), para que se refresque la pantalla después de ejecutar todo el código de la macro.
Las dos líneas a incluir en nuestro código son las siguientes:
- Application.ScreenUpdating = False (Esta linea desactiva el parpadeo de la pantalla)
- Application.ScreenUpdating = True (Esta linea activa el parpadeo de la pantalla)
Veámoslo con un ejemplo.
Evitar el parpadeo si nosotros estamos escribiendo el código de la macro
Cuando no estamos utilizando la grabadora de macros, sino que estamos escribiendo nosotros mismos el código, lo único que tenemos que hacer es ingresar las dos líneas de código relacionadas con la propiedad Application.ScreenUpdating.
Lo haríamos de la siguiente forma:
Sub NombreMacro()
Application.ScreenUpdating = False
Código de la macro…
Application.ScreenUpdating = True
End Sub
Evitar el parpadeo cuando hemos utilizado la grabadora de macros
Cuando hemos grabado la macro con la grabadora de macros, no tenemos la forma de ingresarle esas dos líneas de código mientras estamos grabando. Por lo tanto, después de haber grabado la macro deberemos modificarlas para insertarle las dos líneas que evitan el parpadeo.
Para ello, en la ficha Programador o Desarrollador seleccionaremos Macros.
Después seleccionamos la macro que nos interesa, y pincharemos en el botón Modificar.Se nos abrirá el código de la macro, por lo que lo único que debemos hacer es insertar las dos líneas señaladas en color verde.
Sub NombreMacro()
Application.ScreenUpdating = False
Código de la macro…
Application.ScreenUpdating = True
End Sub
Excelente articulo,me ayudo muchisimo al menos con las macros grabadas,gracias.
Pedazo de aportación. Ya no me parpadea la pantalla al ejecutar mis macros. gracias!!
Hola buen día, una consulta, he realizado mi grabador de macro para un filtro avanzado, pero al ejecutarla no me exporta nada, pero si lo hago manualmente sin macro si me exporta sin problema alguno, he revisado los nombre de cada uno y todo es lo mismo por eso que al hacerlo manual me trae los datos, pero al aplicar la macro grabada nada.
Me puedes ayudar con eso..??
Muchas gracias..!
Hola buenas, los filtros avanzados desde la hoja o desde una macro deben de empezarse desde la hoja activa y para que esto tenga efecto, antes de realizar el grabado del filtrado, debes seleccionar una celda del la hoja activa , osea desde donde iniciaras el filtrado para que la macro considere esa selecion como punto de partida.
Eres lo máximo, con tu aporte me salvaste, gracias mil
Muchas gracias. Me alegra que te sirviera. Un saludo
En las macros de google drive no me funciona, o SIMPLEMENTE me indica error, es diferente el CÓDIGO?
Gracias por compartir excelente solucion
Excelente explicación, me funcionó en mi macro, muchas gracias!!
Excelente explicación, me funcionó en mi macro, muchas gracias!!
Gracias, me resulto muy util.
saludos
Muy buen aporte! gracias
Buenas TARDES, TIENEN EL CODIGO PARA LIBREOFFICE CALC?
HolA!
Qué tal. por alguna razón a pesar de colocar esa propiedad mantiene algún parpadeo, sabrás cuál podría ser la razón? tengo varias macros para una acción, pero todas tienen la propiedad.
Gracias!
estoy en un access 2019, no puedo poner el codigo porque lo rechaza, al abrir el documento se ve horrible, ayuda por favor 🙁
tengo una macro que actualiza, copia y pega, crea filtros, oculta celdas, oculta hojas y da formato a una matriz, ya agregue las lineas tal como lo indicas pero igual me sigue parpadeando.
hola, tengo una macro grabada para hacer un sort, las macros las pongo en una hoja principal con sus botones, cuando corro la macro me marca en la hoja principal las colunmas a ordenar, probe tu recomendación pero lo sigue haciendo, alguna recomendación….
Saludos y Gracias por tu atención