Excel - Validación

   
Vista:

Validación

Publicado por Jose (20 intervenciones) el 18/09/2007 16:24:57
He creado una macro que trabaja sobre una Base de datos que tiene 3 columnas y 20,000 lineas. La macro lo que hace es dar entrada de nuevos registros a esa base de datos. Mi problema es que al ser la base de datos tan grande, cada vez que actuo sobre la base de datos me aparece abajo de mi pantalla un avisador de excel que me va diciendo el porcentaje calculado según transcurre la operación (dice...Calcular 5% luego 20% luego 50%..asi hasta que llega a 100% y pasa a la siguiente operación). Al aparecerme este "calcular", la ejecución de la macro se me relantiza muchísimo. Me he dado cuenta que si cuando está procesando esta evolución de "Calcular", pulso cualquier tecla del teclado Excel se salta el proceso o lo desactiva. ¿alguién sabe como desactivar este "calcular" para que no tenga que estar todo el rato pulsando teclas y que asi funcione mas rapido?

Gracias
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

RE:Validación

Publicado por José Luis (700 intervenciones) el 18/09/2007 19:24:33
Prueba con
Al inicio
Application.ScreenUpdating = False

Al final
Application.ScreenUpdating = True

Esto anulará la visualización hasta que hayas hecho la actualización.

En cualquier caso, lo que estás realizando obliga a excel a visualizarlo en la pantalla de estado y excel te indica cuánto tiempo te queda. Puedes quitar el % si deshabilitas la barra de estado, pero no te lo aconsejo.

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

RE:Validación

Publicado por Fernando (231 intervenciones) el 18/09/2007 21:42:00
No sé si será el caso, pero lo que entiendo es que cuando ingresas un nuevo registro, tu programación lo que hace es recorrer la base de datos hasta encontrar la ultima fila. Esto toma bastante tiempo y generalmente se hace con un bucle.

Para evitar recorrer la Base de Datos te recomiendo usas lo siguiente (suponiendo que tienes datos en la columna A)

Seleccionar la celda A65536 y aplicar la propiedad end(xlup), con esto evitas recorrer y encuentras el último registro con una sola instrucción.

Saludos,

Fernando
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