PROCESO LENTO
Publicado por Catita Zarate (11 intervenciones) el 21/03/2009 15:39:45
Hola, amigos
quisiera que me ayudaran, tengo un registro de 5000 filas lo que necesito es rescatar bajo ciertas condiciones una cantidad de registros. pero el proceso es demasiado lento de aprox. 7 minutos, y lo que quiero es el proceso lo mas rapido posible.aqui les mando el codigo que estoy trabajando.
Private Sub Worksheet_Activate()
Dim filaQ As Integer, filaP As Integer, SUM As Long, filaX As Integer
Worksheets("STOCK & DEMANDA").Range("D6:AF180").Value = Empty
filaP = 7
While Worksheets("3.6.6").Cells(filaP, 16).Value <> ""
filaP = filaP + 1
Wend
filaX = 6
While Worksheets("STOCK & DEMANDA").Cells(filaX, 1).Value <> ""
SUM = 0
For filaQ = 7 To filaP
If Worksheets("3.6.6").Cells(filaQ, 14).Value = "101" And (Worksheets("3.6.6").Cells(filaQ, 15).Value = "ptre02" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "ref53" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "ptuh01" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "aba" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "ref01" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "ref" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "ref02" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "aa0101" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "ref1387" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "ba0101" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "a0101" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "c0101" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "a9901" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "b4001") And Worksheets("3.6.6").Cells(filaQ, 16).Value = Worksheets("STOCK & DEMANDA").Cells(filaX, 1).Value Then
SUM = SUM + Worksheets("3.6.6").Cells(filaQ, 18).Value
Worksheets("STOCK & DEMANDA").Cells(filaX, 5).Value = SUM
End If
Next filaQ
filaX = filaX + 1
Wend
End Sub
espero su ayuda
quisiera que me ayudaran, tengo un registro de 5000 filas lo que necesito es rescatar bajo ciertas condiciones una cantidad de registros. pero el proceso es demasiado lento de aprox. 7 minutos, y lo que quiero es el proceso lo mas rapido posible.aqui les mando el codigo que estoy trabajando.
Private Sub Worksheet_Activate()
Dim filaQ As Integer, filaP As Integer, SUM As Long, filaX As Integer
Worksheets("STOCK & DEMANDA").Range("D6:AF180").Value = Empty
filaP = 7
While Worksheets("3.6.6").Cells(filaP, 16).Value <> ""
filaP = filaP + 1
Wend
filaX = 6
While Worksheets("STOCK & DEMANDA").Cells(filaX, 1).Value <> ""
SUM = 0
For filaQ = 7 To filaP
If Worksheets("3.6.6").Cells(filaQ, 14).Value = "101" And (Worksheets("3.6.6").Cells(filaQ, 15).Value = "ptre02" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "ref53" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "ptuh01" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "aba" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "ref01" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "ref" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "ref02" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "aa0101" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "ref1387" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "ba0101" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "a0101" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "c0101" Or Worksheets("3.6.6").Cells(filaQ, 15).Value = "a9901" Or _
Worksheets("3.6.6").Cells(filaQ, 15).Value = "b4001") And Worksheets("3.6.6").Cells(filaQ, 16).Value = Worksheets("STOCK & DEMANDA").Cells(filaX, 1).Value Then
SUM = SUM + Worksheets("3.6.6").Cells(filaQ, 18).Value
Worksheets("STOCK & DEMANDA").Cells(filaX, 5).Value = SUM
End If
Next filaQ
filaX = filaX + 1
Wend
End Sub
espero su ayuda
Valora esta pregunta


0