Excel - Macro para Filtro Avanzado por Columnas en Excel

 
Vista:
Imágen de perfil de Marco Antonio
Val: 2
Ha aumentado su posición en 18 puestos en Excel (en relación al último mes)
Gráfica de Excel

Macro para Filtro Avanzado por Columnas en Excel

Publicado por Marco Antonio (1 intervención) el 24/10/2018 20:08:37
Hola, buen dia!

Espero me puedan ayudar con mi problema.

Tengo un libro de Excel con información de A4 hasta F#####. En la fila 3, están mis encabezados y en la fila 2, tengo las celdas que sirven para buscar la información que necesito y lo hacen por columna. Se entiende que la Celda A2, buscara información en la columna A .. Y así hasta la Celda F2, buscara en la columna F. Este filtro debera mostrar la info sobre la misma hoja y aplicar filtro sobre filtro. La macro que tengo es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A2:F2")) Is Nothing Then
If ActiveSheet.FilterMode Then ShowAllData 'Selection.AutoFilter
If Target.Count > 1 Then Exit Sub
u = Range("A" & Rows.Count).End(xlUp).Row
Range("AA2:AF2") = [A4]
Range("AA3:AF3") = ""
If [A2] <> "" Then [AA3] = "*" & [A2] & "*"
If [B2] <> "" Then [AB3] = "*" & [B2] & "*"
If [C2] <> "" Then [AC3] = "*" & [C2] & "*"
If [D2] <> "" Then [AD3] = "*" & [D2] & "*"
If [E2] <> "" Then [AE3] = "*" & [E2] & "*"
If [F2] <> "" Then [AF3] = "*" & [F2] & "*"
Range("A4:F" & u).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("AA2:AF3"), Unique:=False
End If
End Sub

También puedo buscar con cualquier parte de la descripción del contenido de cada celda, no precisamente con el comienzo o el final, el problema es que al momento de aplicar el primer filtro en la celda A2 y manda a buscar en la columna A, si lo hace, pero si aplico un segundo filtro en cualquiera de las otras columnas, me manda un único registro, no aplica el segundo filtro, sobre el primero.

NOTA: La columna C debe buscar por fecha, de preferencia en ingles.

Si es necesario enviar el archivo, lo puedo hacer sin problema.

Les agradezco mucho su ayuda, de antemano.
filtros
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.146
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro para Filtro Avanzado por Columnas en Excel

Publicado por Antoni Masana (1456 intervenciones) el 25/10/2018 08:58:45
He corregido algunos referencias que estaban mal

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
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    If Not Intersect(Target, Range("A2:F2")) Is Nothing Then
        If ActiveSheet.FilterMode Then ShowAllData 'Selection.AutoFilter
        If Target.Count > 1 Then Exit Sub
        u = Range("A" & Rows.Count).End(xlUp).Row
 
        Range("AA2") = Range("A3")
        Range("AB2") = Range("B3")
        Range("AC2") = Range("C3")
        Range("AD2") = Range("D3")
        Range("AE2") = Range("E3")
        Range("AF2") = Range("F3")
 
        Range("AA3:AF3") = ""
        If [A2] <> "" Then [AA3] = "*" & [A2] & "*"
        If [B2] <> "" Then [AB3] = "*" & [B2] & "*"
        If [C2] <> "" Then [AC3] = [C2]      ' --- La fecha es un tema aparte
        If [D2] <> "" Then [AD3] = "*" & [D2] & "*"
        If [E2] <> "" Then [AE3] = "*" & [E2] & "*"
        If [F2] <> "" Then [AF3] = "*" & [F2] & "*"
 
        Range("A3:F" & u).AdvancedFilter Action:=xlFilterInPlace, _
                                         CriteriaRange:=Range("AA2:AF3"), _
                                         Unique:=False
    End If
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar