............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Ayuda para ejecutar macro más rápido

Ver el tema anterior Ver el tema siguiente Ir abajo

Ayuda para ejecutar macro más rápido

Mensaje por moctezuma48 el Lun Feb 25, 2013 5:19 pm

Hola a tod@s de nuevo

Mi consulta es la siguiente:

Tengo la siguiente macro:


Application.Screenupdating=False

Dim miCol&, miFila&

For miCol = 1 To 500

For miFila = 25 To 205

If Cells(miFila, miCol).Interior.ColorIndex = 3 Then Cells(miFila, miCol).Value = 1

If Cells(miFila, miCol).Interior.ColorIndex = xlNone Then Cells(miFila, miCol).Value = 3

Next miFila

Next miCol

Application.Screenupdating=True



que lo que hace es que los valores de las celdas que están en el rango especificado cambien según el color de dichas celdas, pero la verdad es que la macro va muy lenta y al ejecutarla varias veces se eterniza.

El cálculo lo tengo a manual.

Lo que quisiera es alguna otra forma de sustitución para que la macro vaya más rápida.



Muchas gracias por vuestra ayuda


moctezuma48

Masculino Cantidad de envíos : 43
Edad : 47
Ciudad - Pais : ESPAÑA
Version de Excel : 2007
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Ayuda para ejecutar macro más rápido

Mensaje por Tatayayan el Mar Feb 26, 2013 1:03 am

Hola, prueba con

Sub MejoraTiempo()
Dim Estado as integer
Estado = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreeUpdating = False
Application.Enableevents = False

'Tú código

Application.Calculation = estado
Application.Enableevents = True
Application.ScreeUpdating = True
End Sub

Tatayayan
Moderador
Moderador

Masculino Cantidad de envíos : 319
Ciudad - Pais : Chamical- La Rioja - ARG
Fecha de inscripción : 20/11/2008

Volver arriba Ir abajo

Re: Ayuda para ejecutar macro más rápido

Mensaje por moctezuma48 el Mar Feb 26, 2013 5:37 am

Gracias por contestar

Lo que me estás comentando ya lo tenía yo, porque el cálculo ya lo tenía en manual.

En cuanto a lo del control de eventos también lo he probado pero la verdad es que no parece tener mucho efecto en el rendimiento.

El problema está en el código, que es lo que te comentaba si hay algún otro tipo de forma de poder hacer que la sustitución no sea tan lenta

GRACIAS POR VUESTRA AYUDA

moctezuma48

Masculino Cantidad de envíos : 43
Edad : 47
Ciudad - Pais : ESPAÑA
Version de Excel : 2007
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Ayuda para ejecutar macro más rápido

Mensaje por Tatayayan el Mar Feb 26, 2013 12:20 pm

Prueba con:
Dim Celda as Range
For each Celda in TuRango
If ...
Next Celda
Con esto creo empleas un solo For

Tatayayan
Moderador
Moderador

Masculino Cantidad de envíos : 319
Ciudad - Pais : Chamical- La Rioja - ARG
Fecha de inscripción : 20/11/2008

Volver arriba Ir abajo

Re: Ayuda para ejecutar macro más rápido

Mensaje por moctezuma48 el Miér Feb 27, 2013 6:09 am

Muchísimas gracias por la ayuda

Ya lo he estado probando y se nota una barbaridad.

GRACIAS


moctezuma48

Masculino Cantidad de envíos : 43
Edad : 47
Ciudad - Pais : ESPAÑA
Version de Excel : 2007
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Ayuda para ejecutar macro más rápido

Mensaje por P@li el Lun Mayo 06, 2013 1:32 pm

No se si es mas rapido, pero es mas prolijo y agregado a la idea de Gali y Tatayan
Código:

'for ...

Select Case Celda.Interior.ColorIndex
  Case  3
    Celda.Value = 1
  Case xlNone
    Celda.Value = 3
End Select

next...


Saludos
Pablo.

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Ayuda para ejecutar macro más rápido

Mensaje por moctezuma48 el Lun Mayo 06, 2013 3:25 pm

Muchas gracias por tu aportación y tu interés (aunque ya había dado por cerrado el tema .... .... )

Ya lo probaré cuando tenga un momento libre

GRACIAS DE TODOS MODOS



moctezuma48

Masculino Cantidad de envíos : 43
Edad : 47
Ciudad - Pais : ESPAÑA
Version de Excel : 2007
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Ayuda para ejecutar macro más rápido

Mensaje por Contenido patrocinado Hoy a las 3:15 pm


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.