Excel - ¿Cómo puedo solucionar el problema de bloqueo de Excel cuando ejecuto determinada macro, después de

 
Vista:
Imágen de perfil de Carlos
Val: 2
Ha aumentado su posición en 932 puestos en Excel (en relación al último mes)
Gráfica de Excel

¿Cómo puedo solucionar el problema de bloqueo de Excel cuando ejecuto determinada macro, después de

Publicado por Carlos (3 intervenciones) el 21/06/2021 18:29:33
Buenos días.

Tengo una pregunta con respeto al uso de macros en Excel.

¿Cómo puedo solucionar el problema de bloqueo de Excel cuando ejecuto determinada macro, después de hacerle alguna modificación?

La solución que le doy a este problema es, eliminar temporales, eliminar eventos con el visor. Pero esta solución es muy engorrosa, debido a que continúo modificando y agregando otras macros al libro. Bueno, aclaró, este no se bloquea de inmediato al editar una macro, sino después de un tiempo. Yo ejecuto la macro y puedo ver los resultados, Y así continuo, pero después de algún tiempo, otra vez ocurre dicho bloqueo. Y me toca otra vez, eliminar temporales, usar el visor de eventos y eliminar evento, y esto se vuelto algo muy aburrido. El problema se soluciona, sí, pero, al rato otra vez. Espero me puedan dar un poco de luz a este problema. Les agradezco inmensamente cualquier sugerencia que me puedan brindar. Tengan un Excelente día.

Haaa!, se me olvidaba, estoy usando office 2016, pensé que si, desinstalaba esta versión y instalaba el Office 2019 se me solucionaría, pero nada, inclusive fue peor.
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: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿Cómo puedo solucionar el problema de bloqueo de Excel cuando ejecuto determinada macro, después de

Publicado por Antoni Masana (2477 intervenciones) el 21/06/2021 19:43:21
Si la macro es larga, no me refiero a la cantidad de líneas sino a la cantidad de tiempo de ejecución, ver lo que esta haciendo es hacerla mas lenta.

Te voy a dar un par de soluciones que mejora la ejecución de las macros:

Pon esto al inicio de la macro:

1
2
3
4
Application.screenupdating=False
Application.calculation=xlCalculationManual
Application.EnableEvents=False
ActiveSheet.DisplayPageBreaks = False

Y pon esto al final de la macro:

1
2
3
4
5
Application.screenupdating=True
Application.calculation=xlCalculationAutomatic
Application.EnableEvents=True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False

Otra cosa que ayuda a no tener la sensación de que se cuelga es poner la instrucción: DoEvents en puntos estratégicos del código, por ejemplo en bucles.

Otra cosa es la forma de programar y aquí van nos consejos:

https://www.todoexcel.com/14-formas-de-acelerar-y-optimizar-tus-macros-excel/

Te preguntaras para que sirve el : DoEvents puedes consultarlo aqui:

https://docs.microsoft.com/es-es/office/vba/language/reference/user-interface-help/doevents-function

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

¿Cómo puedo solucionar el problema de bloqueo de Excel cuando ejecuto determinada macro, después de

Publicado por CARLOS (3 intervenciones) el 23/06/2021 02:14:19
Buenas noches.
Cordial saludo.

Muchas gracias, me ha funcionado el uso de estas sentencias VBA

Application.screenupdating=False
Application.calculation=xlCalculationManual
Application.EnableEvents=False
ActiveSheet.DisplayPageBreaks = False

Y pon esto al final de la macro:

Application.screenupdating=True
Application.calculation=xlCalculationAutomatic
Application.EnableEvents=True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False

¡EXCELENTE!

Hasta el momento el libro con macros no se ha vuelto a bloquear.

Muy agradecido.
Excelente noche, y Dios le bendiga.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Nolberto
Val: 84
Ha aumentado su posición en 6 puestos en Excel (en relación al último mes)
Gráfica de Excel

¿Cómo puedo solucionar el problema de bloqueo de Excel cuando ejecuto determinada macro, después de

Publicado por Nolberto (121 intervenciones) el 22/06/2021 01:21:52
El código que se pone al inicio y final de la macro que menciona Antoni si que funciona, de hecho es muy recomendado.

Pero hay que destacar que en la mayoría de los casos donde el procesamiento se vuelve lento, incluso el bloqueo de excel, suele ser porque el código vba escrito no es el mas adecuado para el problema en cuestión, es decir, hay soluciones de código que son ineficientes y otras eficientes.

Por ejemplo, escribe un ciclo for que recorre un rango usando .Select y .Copy, ten por seguro que si el rango es grande, la eficiencia de ese código sera muy baja, en cambio si ejecutas un ciclo for each, las posibilidades de un mejor rendimiento son mucho mayores.

También es posible ejecutar un ciclo for muy eficiente si el procesamiento de los datos se realiza en memoria, es decir, convertir los datos del rango en una matriz y realizar el ciclo e instrucciones sobre esa matriz.

De cualquier manera, me parece que seria interesante ver ejemplos de tu código, solo de esa forma podremos tener alguna certeza de lo que se puede hacer para mejorar el rendimiento, de hecho, el "truco" esta precisamente en programar instrucciones que sean eficientes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿Cómo puedo solucionar el problema de bloqueo de Excel cuando ejecuto determinada macro, después de

Publicado por Antoni Masana (2477 intervenciones) el 22/06/2021 14:07:27
Buenas Carlos,

como comenta Nolberto además de lo que puse en el comentario hay otros factores que hacen ralentizar mucho el código.
Explicarlos todos sería tan largo como escribir un curso de programación.
Te cuento un pequeño truco para que te hagas una idea, es muchísimo más rápido consultar el valor de una variable que el de una celda.
Si subes el libro y explicas que hace tu código podemos ver si hay algo a mejorar y podremos sugerirte como hacerlo.

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

¿Cómo puedo solucionar el problema de bloqueo de Excel cuando ejecuto determinada macro, después de

Publicado por CARLOS (3 intervenciones) el 23/06/2021 02:16:10
Buenas noches.
Cordial saludo.

Muchas gracias, me ha funcionado el uso de estas sentencias VBA

Muchas gracias, me ha funcionado el uso de estas sentencias VBA

Application.screenupdating=False
Application.calculation=xlCalculationManual
Application.EnableEvents=False
ActiveSheet.DisplayPageBreaks = False

Y pon esto al final de la macro:

Application.screenupdating=True
Application.calculation=xlCalculationAutomatic
Application.EnableEvents=True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False

¡EXCELENTE!

Hasta el momento el libro con macros no se ha vuelto a bloquear.

Muy agradecido.
Excelente noche, y Dios le bendiga.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar