¿Deseo establecer un filtro a través de VBA?

Tengo la siguiente base de datos

En la columna H se puede observar un "no esta" y un "si esta". Deseo a través de VBA al presionar un botón de CommandButton me realice la acción de filtrar la columna H por los que "si están".

Respuesta
1

Coloca esta línea dentro de un botón para filtrar en la columna H el texto Si Está.

Range("H1").AutoFilter , Field:=1, Criteria1:="S*"

Uy perdona Diana. Coloque al principio hola pero no salió ;)

Hola Carlos como estas, me genera el siguiente error:

¿Dónde has puesto el botón?

El botón esta ubicado en la Hoja 1 y es para ejecutar en la Hoja 3. A partir de la z2

Así no funciona, solo sirve en la hoja en cuestión. En ese caso tienes que poner la línea dentro de un módulo y llamarlo desde el botón. ¿Doy por hecho que sabes como?

Que pena la ignorancia pero no me funciono

Lo he probado y me funciona bien. ¿Qué has hecho?

En la Hoja 3 que voy a ejecutar el modulo ingreso, click izquierdo ver modulo y ahí lo pego

Y en el botón coloque el siguiente comando:

No jeje ahora te explico

Insertas un módulo. Busca dentro del editor vba en la esquina superior izquierda. No es igual a este porque aún tengo una versión antigua.

Una vez dentro del módulo pones eso

Listo realice los pasos, en mi caso es modulo 3 ya que estoy trabajando un documento con varios pasos. En este caso me genera el siguiente error.

Sub FiltrarBase()
Sheets("hoja3").Range("Z2").AutoFilter , Field:=1, Criteria1:="S*"
End Sub

Colócalo así

Listo ya me ejecuta sin ningún error, pero no realiza el filtro por "Si esta"

¿Dónde tienes los datos Si esta?

Esta ubicado en la Hoja 3 llamada "BASE DE DATOS HOY" en la columna Z2  hasta la Z1000hay dos, los que "Si esta" y "No esta". Lo que deseo realizar es filtrar por los que "Si esta"

Pues ami me funciona. Revisa todo que algo debe estar mal. Donde esta el texto Si esta en la columna debes estar sin comillas

Déjale solo la S como te la envié :

Criteria1:="S*"

Voy a salir, cualquier cosa me comentas luego.

Me realiza el filtro pero sin ningún criterio, osea se filtra todo. ¿No se debe especificar que tomar rango de z1 a z1000 y de ahí busque criterio "Si esta"?

¿Lo solucionaste?

No me funciono, osea la macro me ejecuta y no genera error, pero filtra todo. ¿No se debe especificar que tomar rango de z1 a z1000 y de ahí busque criterio "Si esta"?

Te voy a llamar en un momento ¿puedes?

Si claro

Dejame pruebo en un documento nuevo y revisamos

Te puedo enviar documento solo con este paso?

A ver, vamos a intentar solucionarlo por aquí. Yo lo he probado de dos maneras y en una me da mal y creo que es como tu lo tienes. Debes dejar el código tal como te lo envío, no modifiques nada.

Sub FiltrarBase()
Sheets("BASE DE DATOS HOY").Range("Z2").AutoFilter , Field:=1, Criteria1:="S*"
End Sub

Lo dejo tal cual, pero filtra todo sin ningún criterio, no lo filtra por los que si están

¿Puedes hacer una captura de la hoja o la parte donde quieres que haga el filtrado?

Esta la Hoja 3

Asi queda despues de presionar el boton

En este ejemplo la columna es la H

Eso quería saber, la columna es la Z, ¿verdad? Si es así prueba cambiando la S del criterio del código por minúscula. Quizás sea eso.

Si tenia otro archivo de prueba y ambos realizo los cambios y no funciona; en el archivo real la columna es la Z y en el ejercicio la H. Cambie la ES por minúscula y tampoco. Sigue filtrando todo sin el criterio "si esta"

Lo raro es que ami me funciona. He puesto un botón en la hoja1 que llama la macro y se ejecuta en la hoja3 y filtra bien. Lo único es que en la columna yo lo tengo en mayúscula y tu en minúscula

1 respuesta más de otro experto

Respuesta
2

[Hola

Sitúate en la hoja de tus datos, anda a la pestaña "Programador" y activa la grabadora de macros, realiza el procedimiento de filtrado que necesitas, una vez hecho eso desactiva la grabadora de macros. Entra al edito del VBA y mira el código generado.

Comentas

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas