Formulario de Filtro rápido, con macros en Excel
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).
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:
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