¿Cuántas veces has escuchado de boca de tu jefe algo como “Venga!! Más rápido!! Necesito el informe para ayer!!”
Muchos de los informes que se crean dependen de un filtro que impide que se muestran datos no relevantes o incluso molestos en alguna ocasión.
Hoy te traigo una sencilla macro que, colocada en la hoja en la que se encuentren los datos que desees filtrar, te permitirá con un doble clic en el dato que necesites, filtrar todas las filas de la tabla.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rngTable As Range
Dim rngData As Range
Dim intColumn As Integer
On Error Resume Next
Application.ScreenUpdating = False
Set rngTable = Range("Mi_Tabla")
Set rngData = rngTable.Offset(1, 0).Resize(rngTable.Rows.Count - 1, rngTable.Columns.Count)
If Not Application.Intersect(ActiveCell, rngData.Cells) Is Nothing Then
' Doble clic en los datos (sin incluir los encabezados de tabla
intColumn = ActiveCell.Column - rngTable.Column + 1
If ActiveSheet.AutoFilterMode = False Then
' Si el autofiltro está deshabilitado, se habilita
rngTable.AutoFilter
End If
If ActiveSheet.AutoFilter.Filters(intColumn).On = True Then
' Si los datos están filtrados por esta columna, elimina el filtro
rngTable.AutoFilter Field:=intColumn
Else
' Si los datos NO están filtrados por esta columna, se crea el filtro
rngTable.AutoFilter Field:=intColumn, Criteria1:=ActiveCell.Value
End If
End If
' Elimina datos
Set rngData = Nothing
Set rngTable = Nothing
Application.ScreenUpdating = True
End Sub
Haz la prueba: Descárgate el archivo, pruébalo, y luego me cuentas.
[attachments include=»5362″]











