Crear múltiples filtros a la vez

Espero me puedan asesorar, tengo ya el código para filt

Ros de diferente manera

Combobox1 nombre, 2 textbox para fechas (periodo) y 4 checkbox, el filtrado ya me sale, pero lo que quiero hacer es lo siguiente:

Filtro por comobo filtro por textbox (fechas) y si selecciono 1 de los 4 checkbox me queda, pero al momento de seleccionar 2 o 3 checkbox ahí no se como poder las condiciones.

Este es mi código que me da todo sencillo, sin mezcla de checkbox,

Sub filtro()
Hoja1.Range("a:az").AutoFilter ' quitar filtro
If ComboBox1 <> Empty Then
    Hoja1.Range("c2").AutoFilter Field:=3, Criteria1:=ComboBox1
End If
    If f_ini <> Empty Then
        Hoja1.Range("k2").AutoFilter Field:=2, Criteria1:=">=" & Format(f_ini, "MM/DD/YYYY"), Operator:=xlAnd, Criteria2:="<=" & Format(f_term, "MM/DD/YYYY")
    End If
        If CB1 = True Then
            Hoja1.Range("k2").AutoFilter Field:=11, Criteria1:="PENDIENTE"
                ElseIf CB2 = True Then
                    Hoja1.Range("k2").AutoFilter Field:=11, Criteria1:="VENCIDA"
                        ElseIf CB3 = True Then
                            Hoja1.Range("k2").AutoFilter Field:=11, Criteria1:="PAGADA"
                                ElseIf CB4 = True Then
                                    Hoja1.Range("k2").AutoFilter Field:=11, Criteria1:="CANCELADA"
    End If

1 respuesta

Respuesta
1

Te anexo la macro actualizada

Sub filtro()
'Act.Por.Dante Amor
    Dim datos(3)
    Hoja1.Range("A:AZ").AutoFilter ' quitar filtro
    If ComboBox1 <> Empty Then Hoja1.Range("C2").AutoFilter Field:=3, Criteria1:=ComboBox1
    If f_ini <> Empty Then Hoja1.Range("B2").AutoFilter Field:=2, Criteria1:=">=" & Format(f_ini, "MM/DD/YYYY"), _
                                                 Operator:=xlAnd, Criteria2:="<=" & Format(f_term, "MM/DD/YYYY")
    If CB1 Then datos(0) = "PENDIENTE": st = True
    If CB2 Then datos(1) = "VENCIDA":   st = True
    If CB3 Then datos(2) = "PAGADA":    st = True
    If CB4 Then datos(3) = "CANCELADA": st = True
    If st Then Hoja1.Range("K2").AutoFilter Field:=11, Criteria1:=Array(datos), Operator:=xlFilterValues
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias!

Solo tengo una duda, cuando selecciono el combo después uno de los checkbox y filtro

Me lo da, y después filtro por rango de fecha, ya no me da, me manda blanco. Mi pregunta es que se debe hacer el filtro en el orden combo, ¿text y chec?, de ahí en más trabaja perfecto.

Mil gracias.

No sé cómo tienes la llamada al procedimiento "filtro".

Pero tienes que hacer el llamado al procedimiento "filtro" cada vez que modifiques algún dato. Yo lo puse en un botón, primer cambio cualquiera de los datos y después presiono el botón.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas