Disminuir tiempo de ejecución de una macro

11/03/2008 - 17:40 por Jorge Luis | Informe spam
Hola a todos. He hecho una macro que evalúa cada celda en 36 columnas y de
acuerdo a un determinado valor x pone en cada celda una fórmula. Este
proceso se hace en 550 filas. El tiempo de ejecución de esta macro es
aproximadamente de 3.9 minutos. El código tiene de 70 líneas. Qué puedo
hacer para mejorar el tiempo de ejecución de la macro?, existen algunos tips
o consejitos para realizar macros y que tengan un rápido tiempo de respuesta?
Muchas Gracias.
 

Leer las respuestas

#1 Héctor Miguel
14/03/2008 - 05:46 | Informe spam
hola, Jorge Luis !

damos por bien-terminado el proceso o la revision para disminuir el tiempo que se toma la macro que estas usando ?
ya lograste reducir el tiempo de 3.9 minutos a ~25/30 segundos ?
ya no hay "detalles en el tintero" ?

saludos,
hector.

Aqui esta el codigo que he hecho.
Copie las formulas en celdas que estan vacias para poder hacer referencia a estas desde las celdas en las cuales necesito copiarlas.
Lo que hace este codigo es evaluar unas condiciones y de acuerdo a esas condiciones le asigna una formula
a la primera posicion de cada fila en la cual la formula se va a pegar.
Luego la formula se copia en toda la fila haciendo referencia a la formula de la primera posicion.



1) pues... efectivamente: -> tienes +/- 19,800 (550 * 36) RE-"selecciones" de la "ActiveCell.Offset(..."
(y una que otra en "repeticion de la seleccion previa") y como te comentaba, un "tip" pudiera ser...
" - EVITAR el uso de instrucciones que (realmente) seleccionan objetos como ActiveCell.Offset(1).Select "
-> y no es claro si en alguna instruccion (previa) en las lineas de tu codigo usas el Application.ScreenUpdating = False

2) (parece que) el codigo lo ejecutas desde la hoja de nombre "CAPEXCorriente"... (es correcto ?)

3) con la instruccion <rango>.Copy [Destination:=]<otro rango>
a) estas haciendo un "pegado" no solo de la formula, sino tambien de cualquier formato en <rango>.Copy
b) el comentario en esas lineas "dice" que la intencion es copiar (solo) la formula (o tambien los formatos ?)

(antes de seguir)... comentas (si hubiera) algun detalle "en el tintero" ?

Preguntas similares