Macro para autofiltro con doble clic

¿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.

 

filtro_doble_clic
Título: filtro_doble_clic (1083 clics)
Tamaño: 19 KB

21 comentarios en “Macro para autofiltro con doble clic”

  1. Estupenda implementación.
    Me ocurre que, en ocasiones, al seleccionar con doble click me quedan seleccionadas varias celdas de la columna, algunas de ellas vacías.

    ¿sabes porqué puede ser?.
    Gracias, febrero59

  2. Es una excelente aplicacion pero si se aplica sobre una tabla no funciona. Hay manera de solucionar esto? Gracias.

  3. Mi comentario por la selección de varias celdas con el doble click era un problema de mi propia hoja de cálculo.
    Disculpad.

    Saludos, febrero59

  4. Está genial, es super sencilla y una herramienta ágil en el caso de tener que ir filtrando por varios campos
    Muy agradecido.

  5. Lamento mucho el haber indicado que el enlace no permitía bajar el archivo, mas bien fue por problemas de configuracion del proxy. Al momento solventado mi inconveniente y la macro funciona tal cual lo esperaba. Saludos y adelante, ya que de este sitio bajo todas las macros que uso en mi trabajo.

  6. Joceline Ampuero

    Estimado,

    Esta macro es la que andaba buscando, sin embargo no me funciona, simplemente no hace nada en mi Hoja de Excel.

    Gracias de antemano.

    Saludos cordiales.

  7. quiero filtrar varios datos duplicados ej 55,55,55. 66,66,66

    y se filtre 55 y 66 a la vez

    1. Yesica, para ello tendrás que crear un filtro personalizado con el criterio «Empieza por». Así lo solucionarás.

  8. Hector Hernández

    Buenas noches….

    tengo que activar filtros en varias hojas por lo regular en la fila a6, pero acorde al contenido del rango que esta en a5, no quiero que me ponga en toda la fila la opción de rangos. El rango donde se deben de activar los filtros es distinto por lo que hice lo siguiente
    For i = 1 To Sheets.Count
    Sheets(i).Activate
    Range(«a5»).CurrentRegion.Offset(1, 0).Select

    Next

    Sheets(1).Activate

    pero ahora que intento poner el filtro no se que hacer, ya que me selecciona el rango en cada hojas intente poniendo Range(«a5»).CurrentRegion.Offset(1, 0).autofilter…………..y si fuera una hoja si se activa el filtro, pero con más hojas me pone error

  9. Sergio buenos dias, muy simpatica la macro pero al probarla sobre una tabla de excel no funciona, toca quitarle los filtros primero antes del doble_click.

    como se podria solucionar este impase??.

    gracias de antemano

Los comentarios están cerrados.

Sergio

Sergio

La destreza y el perfeccionismo quizá sean las dos virtudes que me permiten ayudar a mis clientes a facilitar las tareas administrativas de sus negocios.

Centro de preferencias de privacidad

Obligatorias

Las cookies es una manera de recoger información personal de forma indirecta, por lo que cumpliendo con el art. 22.2 de la Ley de la Sociedad de la Información y del Comercio electrónico, voy a indicarte cuáles son las cookies de terceros que se descargarán en tu navegador, la duración de las mismas y la finalidad de cada una de ellas.

Estas cookies de terceros se utilizan para la elaboración de perfiles de clientes. Esta es una actividad fundamental, para estar en posibilidad de ofrecer a visitantes, suscriptores, usuarios y clientes los productos y servicios que satisfagan su experiencia. Si no estás de acuerdo con la elaboración de perfiles puedes eliminar o desactivar las cookies, modificarlas a su preferencia o incluso, dejar de navegar en esta web.

Para evitar la descarga de cookies puedes bloquear las mismas mediante la configuración de tu navegador, evitando así que se almacenen en tu disco duro. Pero debes saber a eliminar las cookies, parte de la web no funcionará o la calidad de la misma puede verse afectada.

Publicidad

Ebook De 0 a 100 con macros y VBA

De 0 a 100 con macros y VBA

Esta oferta no es para siempre...

¡no la desaproveches!