Formulario de Filtro rápido, con macros en Excel

Twittear este post Compartir en Facebook

Nota del 09-abr-11: Se modifica el formulario del filtro, para que se permita elegir la columna que se desea filtrar (por solicitud de un usuario de los foros de www.todoexcel.com).

image

Los autofiltro en Excel son muy útiles y necesarios, así como los filtros avanzados, cuando queremos más de una condición para nuestro filtrado.

Pero muchas en muchas ocasiones lo que deseamos es un filtro rápido y sin complicaciones.

Para este propósito, desarrollé el siguiente formulario que, con sólo escribir los datos que necesitamos, “al cambio” realiza el filtrado.

Formulario en acción:

image

Código de la macro:

'---------------------------------------------------------------------------------------
' Module    : Módulo1
' Author    : Sergio A Campos H
' Date      : 03/04/2011
' Purpose   : Filtro rápido
'---------------------------------------------------------------------------------------

Sub EXCELeINFOFiltro()
    On Error Resume Next
    If frmFiltroRapido.txtCriterio.Value <> "" Then
        If frmFiltroRapido.chkInicio.Value = True Then
            Criterio = frmFiltroRapido.txtCriterio.Value & "*"
        Else
            Criterio = "*" & frmFiltroRapido.txtCriterio.Value & "*"
        End If
        ColFiltrar = ActiveCell.Column - ActiveCell.CurrentRegion.Column + 1
        ActiveCell.CurrentRegion.AutoFilter Field:=ColFiltrar, Criteria1:=Criterio, Operator:=xlAnd
    Else
        Criterio = ""
        Selection.AutoFilter
    End If
End Sub
'
Sub AbrirFiltro()
    If TypeName(Selection) <> "Range" Then
        MsgBox "No hay celdas elegidas.", vbExclamation, "EXCELeINFO"
    Else
        If ActiveCell.CurrentRegion.Rows.Count < 2 Then
            MsgBox "No hay suficientes datos para realizar un filtrado.", vbExclamation, "EXCELeINFO"
        Else
            frmFiltroRapido.Show
        End If
    End If
End Sub

:: Descargar ejemplo

You may also like...