Macro, con autofiltro según rango

Dante buenos días.. Necesito de tu ayuda nuevamente..

Necesito un autofiltro que funcione con la referencia de B2, y busque desde B4 a B6000. Los códigos buscados son numéricos y otros alfa numéricos.

Hoy yo tengo una macro rearmada pero no me busca correctamente por que me busca siempre y cuando el código comience con una letra.

Si me podes ayudar te lo agradecería muchísimo.

Saludos Cordiales. Y feliz año..

If Not Intersect(Target, Range("b2")) Is Nothing Then
ActiveSheet.Unprotect "pirucha"
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
uf = Range("b" & Rows.Count).End(xlUp).Row
Range("a4:b" & uf).Font.Bold = False
Range("a4:b" & uf).Interior.ColorIndex = xlNone
Range("a3:aa" & uf).AutoFilter
If Range("b2") <> "" Then
ActiveSheet.Range("$a$4:$aa$" & uf).AutoFilter _
Field:=2, _
Criteria1:="=*" & Range("b2") & "*", _
Operator:=xlAnd
End If

ActiveSheet.Protect "pirucha"

End If
Application.ScreenUpdating = True

1 respuesta

Respuesta
1

Podrías enviarme tu archivo y me explicas con ejemplos, en una hoja me pones cómo tienes la información y en otra hoja me pones el resultado que esperas del autofiltro.

Dante ya te envíe el archivo al correo como me solicitaste.

Saludos

Esta es la macro para filtrar.

    If Not Intersect(Target, Range("b2")) Is Nothing Then
        Application.ScreenUpdating = False
        ActiveSheet.Unprotect "pirucha"
        If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
        'uf = Range("b" & Rows.Count).End(xlUp).Row
        uf = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
        Range("a4:b" & uf).Font.Bold = False
        Range("a4:b" & uf).Interior.ColorIndex = xlNone
        Rows("4:" & uf).EntireRow.Hidden = False
        'Range("a3:aa" & uf).AutoFilter
        'If Range("b2") <> "" Then
        '    ActiveSheet.Range("$a$4:$aa$" & uf).AutoFilter _
        '        Field:=2, _
        '        Criteria1:="=*" & Range("b2") & "*", _
        '        Operator:=xlOr, Criteria2:=Range("b2")
        'End If
        For i = 4 To uf
            If InStr(1, Cells(i, "B"), [B2]) = 0 Then
                Rows(i).EntireRow.Hidden = True
            'Else
            End If
        Next
        ActiveSheet.Protect "pirucha"
        Application.ScreenUpdating = True
    End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas