Buscar articulos con fechas de expiracion
Publicado por Juan (200 intervenciones) el 29/03/2021 11:59:08
Hola estimados, tengo un código que extrae de una tabla base (Inv QAD) el stock de artículos que tengan el mismo almacén (200 o 200VR) con estatus Stock liberado y los coloca en una hoja (Refrigerado) donde coincidan los códigos con sus respectivas fechas de expiración. La macro trabaja bien, el problema es que el proceso corre muy lento. ¿Hay alguna forma de mejorar el bucle del código para sea más rápido el proceso?? Les estoy enviando el archivo para mejor evaluación.
Este es el código:
Este es el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Private Sub CommandButton1_Click()
Dim old&, FilaB&, FilaC&, FilaA&, ColumnaD&
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Dim Origen, FechExP, AlmacenInv, ArticuloInventario, EstatusInv
Dim Sumar, Numeracion, Ref, Col, Fila
Dim QAD As Range
Dim Expiracion As Range
Worksheets("Refrigerado").Range("C6:DC68").Value = Empty
With Application
.ScreenUpdating = False
old = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = False
End With
Set WS1 = Worksheets("Inv QAD")
Set WS2 = Worksheets("Refrigerado")
FilaA = 2
While WS1.Cells(FilaA, 1).Value <> ""
FilaA = FilaA + 1
Wend
ColumnaD = 3
While WS2.Cells(4, ColumnaD).Value <> ""
ColumnaD = ColumnaD + 1
Wend
FilaC = 6
While WS2.Cells(FilaC, 2).Value <> ""
FilaC = FilaC + 1
Wend
For Col = 3 To ColumnaD
For Fila = 6 To FilaC
Sumar = 0#
For Each QAD In WS1.Range("A2:A" & FilaA - 1)
AlmacenInv = QAD.Offset(, 0).Value
ArticuloInventario = QAD.Offset(, 2).Value
EstatusInv = QAD.Offset(, 15).Value
Origen = QAD.Offset(, 13).Value
FechExP = QAD.Offset(, 8).Value
If (AlmacenInv = 200 Or UCase(AlmacenInv) = "200VR") And UCase(EstatusInv) = "STOCK LIB" And _
UCase(Origen) = "PLF" And WS2.Cells(4, Col).Value = ArticuloInventario Then
If WS2.Cells(Fila, 2).Value = FechExP Then
Sumar = Sumar + QAD.Offset(, 6).Value
WS2.Cells(Fila, Col).Value = Sumar
End If
End If
Next
Next Fila
Next Col
End Sub
- Stock-por-fechas.rar(93,8 KB)
Valora esta pregunta


0