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

Excel - FormulaArray - Descargar Memoria

Ver el tema anterior Ver el tema siguiente Ir abajo

Excel - FormulaArray - Descargar Memoria

Mensaje por OKAT el Miér Oct 21, 2009 9:01 am

Hola Foro :
Tengo una macro como la siguiente que inserta una matriz en una celda para realizar una suma si es que coinciden los centros de costo con el valor de determinadas celdas.
La fórmula es así :
{=SUMA(SI($C$9=CENTRO11;SI(CONCE11<100;IMPOR11;0);0))- SUMA(SI($C$9=CENTRO11;SI(CONCE11>99;SI(CONCE11<200;IMPOR11;0);0)))} ; las celdas van variando al igual que los rangos (CENTRO11,CENTRO21...CONCE11,CONCE21...)
A los fines de que el libro no sea tan pesado con las fórmulas matriciales, al final de la rutina copio y pego como valor.
Todos los cálculos funcionan correctamente, es decir la rutina hace lo que necesito.
El problema que tengo es cuando quiero cerrar el libro, se demora una enormidad. Aparentemente queda la memoria muy cargada.
Alguien podría darme una pista para solucionar esto ??
Muchas Gracias!

Oscar.

For fi = 9 To 44
co = 5
For j = 1 To 12
CENTRO = "CENTRO" & j & "1": CONCE = "CONCE" & j & "1": IMPOR = "IMPOR" & j & "1"
Cells(fi, co).FormulaArray = _
"=SUM(IF(R" & fi & "C3=" & CENTRO & ",IF(" & CONCE & "<100," & IMPOR & ",0),0))- SUM(if(R" & fi & "C3=" & CENTRO & ",if(" & CONCE & ">99,if(" & CONCE & "<200," & IMPOR & ",0),0)))"
Cells(fi, co).Copy
Cells(fi, co).PasteSpecial (xlPasteValues)
co = co + 1
Next
Next

OKAT

Masculino Cantidad de envíos : 13
Edad : 51
Ciudad - Pais : Argentina
Version de Excel : 2003-2007-2010
Fecha de inscripción : 13/02/2009

Volver arriba Ir abajo

Re: Excel - FormulaArray - Descargar Memoria

Mensaje por sailepaty el Miér Oct 21, 2009 4:53 pm

Que tal así,

Código:
sText = "SUMPRODUCT((CELDA=CENTROx)*(CONCEx<100)*IMPORx)-SUMPRODUCT((CELDA=CENTROx)*(CONCEx>99)*(CONCEx<200)*IMPORx)"
For Fi = 9 To 44
    co = 5
    For j = 1 To 12
        sFormula = Replace(Replace(sText, "CELDA", "R" & Fi), "x", j & "1")
        Cells(Fi, co).Value = Evaluate(sFormula)
    Next j
Next Fi


Saludos
avatar
sailepaty
Moderador
Moderador

Masculino Cantidad de envíos : 135
Edad : 54
Ciudad - Pais : Dallas, TX
Version de Excel : 2007 y 2010
Fecha de inscripción : 04/03/2008

Volver arriba Ir abajo

Re: Excel - FormulaArray - Descargar Memoria

Mensaje por OKAT el Lun Oct 26, 2009 3:29 pm

Mucha Gracias. sailepaty, he modificado todas las macros en base al ejemplo que me enviastes y pude resolver el conflicto que tenía.
Demoraba alrededor de 40 seg. en ejecutar la consulta y cuando queria cerrar el libro demoraba mas de 1 minuto. Ahora ejecuta todo en 12 seg. y el libro se cierra prácticamente sin demoras.

Saludos, Oscar.

OKAT

Masculino Cantidad de envíos : 13
Edad : 51
Ciudad - Pais : Argentina
Version de Excel : 2003-2007-2010
Fecha de inscripción : 13/02/2009

Volver arriba Ir abajo

Re: Excel - FormulaArray - Descargar Memoria

Mensaje por sailepaty el Lun Oct 26, 2009 3:45 pm

Gracias por regresar a comentar el resultado.

Saludos
avatar
sailepaty
Moderador
Moderador

Masculino Cantidad de envíos : 135
Edad : 54
Ciudad - Pais : Dallas, TX
Version de Excel : 2007 y 2010
Fecha de inscripción : 04/03/2008

Volver arriba Ir abajo

Re: Excel - FormulaArray - Descargar Memoria

Mensaje por Contenido patrocinado


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.