Filtrar columna con valores numéricos – Filtro rápido en Excel – Parte 3
En este tercera parte de nuestro proyecto Filtro rápido en Excel respondo a una consulta que he recibido en varios comentarios, la cuales es cómo podemos filtrar valores de una columna si contiene números. Esto lo haremos incluyendo una nueva Casilla de verificación donde especifiquemos que la columna elegida es numérica.
Lo que hemos realizado
En la parte 2 de este proyecto incluimos la manera de poder elegir la columna a filtrar, además de poder hacer filtro buscando el texto ingresado desde el principio del texto en las celdas.
Figura 1. Filtrar valores eligiendo la columna a filtrar.
Para tener la opción de elegir si la columna a filtrar es numérica, deberemos de utilizar un nuevo control ActiveX de tipo Casilla.
Ver Video Filtro rápido en Excel PARTE 3
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Filtrar columna con números
Para filtrar una columna numérica deberemos insertar una nueva Casilla de verificación (ChechBox2), seleccionando la pestaña Programador > Insertar > Casilla (control ActiveX).
Figura 2. Control ActiveX de tipo Casilla de verificación.
Para que el filtro en columna numérica funcione, deberemos asignarle a la variable criterio el texto que tengamos en el Cuadro de texto (TextBox1) que nos sirve para ingresar los valores.
Criterio = Hoja1.TextBox1.Value
Filtro rápido en acción
Para comprobar el filtro en columnas numéricas, es importante estar seguros que la columna contiene sólo números, ya que al seleccionar la Casilla donde especificamos que la columna contiene sólo números el filtro se aplicará sólo con texto completo, sin comodines.
Es importante tomar en cuenta que sólo podremos marcar una de las dos casillas y no las dos a la vez. Para lo anterior haremos uso del evento Click de cada Casilla y definir que si marcamos una, la otra de desmarcará en caso de que esté marcada.
'Casilla de verificación BUSCAR DESDE EL PRINCIPIO Private Sub CheckBox1_Click() If Hoja1.CheckBox1.Value = True Then: Hoja1.CheckBox2.Value = False End Sub 'Casilla de verificación LA COLUMNA CONTIENE SÓLO NÚMEROS Private Sub CheckBox2_Click() If Hoja1.CheckBox2.Value = True Then: Hoja1.CheckBox1.Value = False End Sub
Figura 3. Filtrando columna numérica en Excel con Filtro rápido.
Código VBA de la macro
Anexo el código VBA completo del proyecto Filtro rápido.
'EXCELeINFO 'MVP Sergio Alejandro Campos 'http://www.exceleinfo.com 'https://www.youtube.com/user/sergioacamposh 'http://blogs.itpro.es/exceleinfo ' Option Explicit 'Casilla de verificación BUSCAR DESDE EL PRINCIPIO Private Sub CheckBox1_Click() If Hoja1.CheckBox1.Value = True Then: Hoja1.CheckBox2.Value = False End Sub 'Casilla de verificación LA COLUMNA CONTIENE SÓLO NÚMEROS Private Sub CheckBox2_Click() If Hoja1.CheckBox2.Value = True Then: Hoja1.CheckBox1.Value = False End Sub 'Lista combinada para ELEGIR LA COLUMNA A FILTRAR Private Sub ComboBox1_DropButtonClick() Hoja1.ComboBox1.List = Application.Transpose(Hoja1.Range("A9").CurrentRegion.Resize(1).Value) End Sub 'Botón BORRAR FILTRO Private Sub CommandButton1_Click() Range("A9").CurrentRegion.AutoFilter Hoja1.TextBox1.Value = "" Hoja1.CheckBox1.Value = False Hoja1.CheckBox2.Value = False Hoja1.ComboBox1.Value = "" End Sub 'Cuadro de texto para FILTRAR VALORES Private Sub TextBox1_Change() Dim Criterio As String Dim Columna As Integer If Hoja1.TextBox1.Value <> "" Then If Hoja1.ComboBox1.Value = "" Then Exit Sub If Hoja1.CheckBox1.Value = True Then Criterio = Hoja1.TextBox1.Value & "*" ElseIf Hoja1.CheckBox2.Value = True Then Criterio = Hoja1.TextBox1.Value Else Criterio = "*" & Hoja1.TextBox1.Value & "*" End If Columna = Hoja1.ComboBox1.ListIndex + 1 Range("A9").CurrentRegion.AutoFilter Field:=Columna, Criteria1:=Criterio Else Criterio = "" Range("A9").CurrentRegion.AutoFilter End If End Sub
Descargar el archivo de ejemplo
Filtro rápido en hoja PARTE 3 – EXCELeINFO.zip
Si te gustó este tutorial por favor anótate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.