Nosotros | Acceder | Web | Plantillas |

Función FILTRAR con VBA


Uno de los problemas más comunes que se ha presentado en las aplicaciones de Microsoft y en especial en Excel es que no se muestra la famosa función FILTRAR, una de las funciones muy esenciales para filtrar una información muy extensa según sea los criterios que se defina. La principal razón que no aparezca esta función en ciertas versiones de Excel, se debe a que es una función nueva y sólo se encuentra disponible en la versión de Excel 365, y que recientemente se ha ido liberando para versiones especificas de Excel, tal es el caso de la versión gratuita de LTSC 2021 que, ya lo incluye.

Antes de seguir con los detalles de esta función no encontrada en ciertas versiones lo que te recomendamos de nuestra parte es actualizar a la versión LTSC 2021 sino cuentas con una versión 365 de pago. Actualiza Aquí.

El problema surge en versiones inferiores a la del 2021, háblese de Excel 2019, 2016 e inferiores. Pero cómo solucionar este problema muy típico, por casualidad y para salvación de muchos que no queremos actualizar a versiones más recientes se puede implementar usando código VBA de una forma muy sencilla. Para eso realizamos lo siguientes:

Paso 01: El primer paso es muy sencillo y opcional, consiste en aplicar una tabla a todos los datos que tenemos, para eso simplemente selecionamos todo el rango de datos y presionando las teclas CONTROL + T insertamos un formato de tabla.

Paso 02: El segundo paso es insertar un Control de Texto (Control ActiveX) desde la pestaña programador o desarrollador en algunas versiones y lo dibujamos con clic sostenido en cualquier parte de nuestra hoja de Excel. En este caso haremos coincidir con la casilla color ROSA. 


Paso 03: Ahora con clic derecho sobre del control ingresamos a la opción de ver código para visualizar el editor de codigos VBA de Visual Basic que Excel trae incluido como parte de su estructura y pegamos el siguiente código tal como podemos ver en la imagen.

Dim criterio As String
	If Hoja102.TextBox1.Value <> "" Then
		criterio = "*" & TextBox1.Value & "*"
		Range("A6").CurrentRegion.AutoFilter field:=1, Criteria1:=criterio
Else
		criterio = ""
		Range("A6").CurrentRegion.AutoFilter
End If

Donde, Hoja102 es el nombre raíz de la hoja que debes de cambiar por el nombre de la hoja en la que estás trabajando, y si se trata de un libro nuevo con una sola hoja generalmente es Hoja1. La celda A6 indica el inicio de la tabla donde se encuentran los datos, en este caso la tabla empieza en la celda A6 o la celda que dice PRODUCTO. Finalmente tenemos a field:=1 Hace referencia a la columna por la que vamos a filtrar en este caso es la columna 1 de la tabla, es decir, vamos a filtrar por el nombre del PRODUCTO que está en la columna 1, en el caso de filtrar por otra columna diferente a la primera en referencia a la tabla, usar el número de columna correspondiente, por ejemplo, si se requiere filtrar por el precio, entonces será ya la columna 2 igual a decir field:=2.


Paso 04: el paso final y el más importante es ejecutar el código que hemos programado, para eso en la pestaña programador desactivamos el modo diseño y ejecutamos la prueba escribiendo el nombre del producto a filtrar.


Si, aún no te quedó muy claro la explicación escrita, puedes ver el video en nuestro canal donde se eplica todo detalladamente.

Comparte este Artículo :

Publicar un comentario

 
Soporte : Privacidad | Términos y Condiciones | Cookies
Copyright © Desde el 2022. Dominando Ofimática - Derechos Reservados
Nuestros Proyectos Web Oficial Además de Nuestro Canal
Síguenos en TikTok