Macro para aplicar y eliminar un filtro mediante un botón

Un consultante nos pregunta cómo terminar una macro que aplica un filtro a las filas del tercer campo cuyo valor sea X, de manera que se asigne a un botón y la primera vez que se pulse el botón se aplique el filtro y una vez aplicado al volver a hacer clic en el botón se desactive el filtro.

Una manera de hacer esto es la siguiente:

Hacemos clic con el botón derecho del ratón sobre Hoja1
Seleccionamos Ver código


Copiamos el siguiente código en nuestro editor VBA

Sub Filtro()
Set fl= Sheets("Hoja1")
With fl.Range("a1:c21")
If fl.FilterMode = False Then
.AutoFilter Field:=3, Criteria1:="X"
Else
.AutoFilter
End If
End With
End Sub


Diseñamos el formulario accediendo a la ficha Programador

Opción Insertar
Seleccionamos en Controles de formulario el control Botón


Y dibujamos el botón en nuestra hoja.
A continuación, aplicamos la macro que acabamos de crear al botón, haciendo clic derecho sobre el mismo.
Seleccionamos Asignar macro

Seleccionamos la macro. En este caso, al estar en la hoja se llama Hoja1.Filtro
Hacemos clic en Aceptar

Hemos modificado el nombre del botón para que quede más estético.

Al hacer clic sobre el botón observamos cómo se oculta la fila 3 que no contiene en la columna Resultados una X, quedando filtradas las filas 2 y 4 que sí tienen una X.



Nota: Para aprender más, no dudes en suscribirte a nuestra lección semanal en el menú superior derecho de este blog.

0 comentarios:

Publicar un comentario

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Top WordPress Themes