¿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".
2 Respuestas
[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
- Compartir respuesta
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*"
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?
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í
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
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"?
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"?
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
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.
- Compartir respuesta