¿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
![Abraham Valencia](http://blob.todoexpertos.com/letters/A_185_48.png?v=1)
[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
![](/content/images/user_nophoto_small.png)
![Carlos Arrocha](http://blob.todoexpertos.com/avatars/sm/9afddtp8j4a9fkfq.jpg?v=47)
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*"
![Carlos Arrocha](http://blob.todoexpertos.com/avatars/sm/9afddtp8j4a9fkfq.jpg?v=47)
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?
![Carlos Arrocha](http://blob.todoexpertos.com/avatars/sm/9afddtp8j4a9fkfq.jpg?v=47)
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
![Diana Ortega Guevara](http://blob.todoexpertos.com/avatars/sm/5acnpkhvmaosst36.jpg?v=31)
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.
![Carlos Arrocha](http://blob.todoexpertos.com/avatars/sm/9afddtp8j4a9fkfq.jpg?v=47)
Sub FiltrarBase() Sheets("hoja3").Range("Z2").AutoFilter , Field:=1, Criteria1:="S*" End Sub
Colócalo así
![Diana Ortega Guevara](http://blob.todoexpertos.com/avatars/sm/5acnpkhvmaosst36.jpg?v=31)
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"
![Carlos Arrocha](http://blob.todoexpertos.com/avatars/sm/9afddtp8j4a9fkfq.jpg?v=47)
Pues ami me funciona. Revisa todo que algo debe estar mal. Donde esta el texto Si esta en la columna debes estar sin comillas
![Diana Ortega Guevara](http://blob.todoexpertos.com/avatars/sm/5acnpkhvmaosst36.jpg?v=31)
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"?
![Diana Ortega Guevara](http://blob.todoexpertos.com/avatars/sm/5acnpkhvmaosst36.jpg?v=31)
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"?
![Carlos Arrocha](http://blob.todoexpertos.com/avatars/sm/9afddtp8j4a9fkfq.jpg?v=47)
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
![Carlos Arrocha](http://blob.todoexpertos.com/avatars/sm/9afddtp8j4a9fkfq.jpg?v=47)
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
![](/content/images/user_nophoto_small.png)