Macro para filtrar por mes
-------------------------
Buena noche
Necesito ayuda con esto
Tengo este codigo que me ayuda a filtrar por mes, me funciona pero es demasiado lento, se tarda hasta media hora en mostrar los resultados, y queria que alguno de ustedes me ayudara a ver si hay alguna manera de hacer el codigo para que funcione mas rapido porfavor
Gracias
Este es el codigo
Private Sub CommandButton2_Click()
Dim colinfo As Integer
Dim filainfo As Integer
Dim filavtas As Integer
Dim filavtas1 As Integer
Dim filanom As Integer
Dim filanom1 As Integer
Dim Acum, Tacum As Currency
Dim dato1 As Date
Dim dato2 As Date
Dim condi1 As Date
Dim condi2 As Date
Dim dato3 As String
Dim dato4 As String
Dim dato5 As String
Dim dato6 As String
Sheets("Cuatri").Select
colinfo = 2
filainfo = 3
filavtas = 3
filanom = 3
filanom1 = 2
filavtas1 = 3
cond1 = TextBox1
cond2 = TextBox2
Acum = 0
Tacum = 0
'Realiza bucle mientras no haya columnas vacias
While Sheets("Cuatri").Cells(2, colinfo) <> Empty
'Realiza un nuevo bucle mietras no haya filas vacias recorriendo la fila de vtas
While Sheets("Cuatri").Cells(filainfo, 1) <> Empty
While Sheets("Enter").Cells(filanom, 1) <> Empty
dato1 = Sheets("Enter").Cells(filavtas, 2).Value 'fecha
dato2 = Sheets("Enter").Cells(filavtas, 2).Value 'fecha
dato3 = Sheets("Cuatri").Cells(2, colinfo).Value 'mes encabezado
dato4 = Sheets("Enter").Cells(filanom, 10).Value 'mes
dato5 = Sheets("Cuatri").Cells(filainfo, 1).Value 'items
dato6 = Sheets("Enter").Cells(filavtas, 1).Value 'items
If dato1 >= cond1 And dato2 <= cond2 And dato3 = dato4 And dato5 = dato6 Then
While Sheets("Enter").Cells(filavtas1, 1) <> Empty
dato4 = Sheets("Enter").Cells(filanom1, 10).Value 'mes
dato5 = Sheets("Cuatri").Cells(filainfo, 1).Value 'items
dato6 = Sheets("Enter").Cells(filavtas1, 1).Value 'items
If dato1 >= cond1 And dato2 <= cond2 And dato3 = dato4 And dato5 = dato6 Then
Acum = Sheets("Enter").Cells(filavtas1, 5) 'cantidad
Tacum = Tacum + Acum
Sheets("Cuatri").Cells(filainfo, colinfo) = Tacum 'cantidad
End If
filavtas1 = filavtas1 + 1
filanom1 = filanom1 + 1
Wend
End If
Acum = 0
Tacum = 0
filavtas1 = 2
filanom1 = 2
filanom = filanom + 1
filavtas = filavtas + 1
Wend
filavtas1 = 2
filanom1 = 2
filanom = 3
filavtas = 3
filainfo = filainfo + 1
Wend
filavtas1 = 2
filanom1 = 2
filanom = 3
filavtas = 3
filainfo = 3
colinfo = colinfo + 1
Wend
Sheets("Cuatri").Select
Range("B3:M1000").Select
Selection.NumberFormat = "0"
Range("A1").Select
'Sheets("listado OP").Protect Password:="miclave"
ActiveWindow.Zoom = 94
'Devuelvo movimientos a la pantalla
Application.ScreenUpdating = True
'For Each celda In Range(Range("a2"), Range("a65536").End(xlUp))
'If celda.Offset(0, 13).Value = 0 Then 'And celda.Offset(0, 3).Value = 0 And celda.Offset(0, 4) = 0 Then
'celda.EntireRow.Hidden = True
'End If
'Next
MsgBox "Proceso Completo"
End Sub
Puedo enviar el archivo