Como filtrar en excel de manera automatica

He estado buscando en varios sitios y no logro conseguir exactamente lo que necesito que creo no es nada del otro mundo, para los que manejan Excel, se daran cuenta que cuando tienes una tabla y quieres añadirle filtros personalizados en el botoncito que esta en los titulos de cada columna, este desplega una barra de opciones "Entre ellas la opcion buscar" que te permiten filtrar a tu antojo y criterio, pues bien lo que yo necesito es filtrar VARIOS valores al mismo tiempo, bien sea de texto o numerico con un copia y pega, por ejemplo tengo mi base datos en una hoja excel, y tengo mis criterios en otra hoja excel, yo quiero seleccionar arrastrando el raton sobre mis criterios y pegar todo de una vez y este filtre dichos valores sin tener que darle a uno por uno, o bien agregando uno y despues agregas otro y le das añadir a la selección actual, es bastante tedioso y laborioso cuando se tratan mas de 250 valores y tienes que añadirlos uno por uno. Se que con macros todo se puede, si me explican un codigo que yo al pegar mis criterios en una columna, este automaticamente filtre mi base de datos segun mis criterios, me seria de mucha ayuda.

Respuesta
2

H o l a:

Te anexo una macro, para afinar la macro y dejarla al punto se tienen que adecuar varios detalles:

1. Nombre de la hoja de datos

2. Nombre de la hoja con los criterios.

3. Te propongo que los resultados del filtro queden en la hoja "resultados"

4. En qué fila están los encabezados.

5. El qué fila empiezan los datos.

6. No deben existir encabezados iguales.

7. No deben existir encabezados en blanco.

8. No deben estar combinadas las celdas de los encabezados.

9. El encabezado de la columna que vayas a filtrar, deberás copiarlo a la celda A1 de la hoja "Criterios".

10. Tienes que poner la columna inicial de tus datos (yo puse la columna "A")

11. Tienes que poner la columna final de tus datos (yo puse la columna "B")

12. Pon la macro en un módulo de VBA y asigna la macro a un botón, en la macro tienes que cambiar "base", "criterios", "resultados" "A" y "B" por tus datos.

Sub FiltrarConCriterios()
'Por.Dante Amor
    Set h1 = Sheets("base")         'Hoja de datos
    Set h2 = Sheets("criterios")    'hoja de criterios
    Set h3 = Sheets("resultados")   'hoja de resultados
    '
    col1 = "A"                      'Columna inicial de datos
    col2 = "B"                      'Columna final de datos
    '
    h3.Cells.Clear
    u1 = h1.Range("A" & Rows.Count).End(xlUp).Row
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
    h1.Range(col1 & "1:" & col2 & u1).AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=h2.Range("A1:A" & u2), CopyToRange:=h3.Range(col1 & "1:" & col2 & 1), Unique:=False
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: FiltrarConCriterios
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Si tienes problemas para adaptar la macro a tus datos, entonces describe o pon imágenes de tu información para ver cómo están tus dato y poder actualizar la macro.


O si lo prefieres puedes enviarme tu archivo para que yo lo actualice.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “ulukai2” y el título de esta pregunta.

Gracias por responder y por tomarte la molestia de describir todo los pasos para la utilización de la macro que me envías, como puedo entender en el código de la macro, esto requiere la utilización de 3 hojas y el filtrado me lo hace en la hoja con nombre resultado, pero este copia la información, quizás no supe explicarme bien y me disculpo por ello, voy a tratar de ser lo más especifico posible, así que discúlpame si me extiendo un pocoEste archivo me llega todos los meses para que por mi parte tenga que ser analizado y reenviado a las personas pertinententes, es por ello que no puedo hacerle una edición muy compleja y tengo que trabajar encima de lo que ya tengo, bueno me explico tengo una serie de vehículos por catalogo (MCR01, MDE10, FE5GT etc), cada uno de ellos tienen su respectivo serial que te señalo con la flecha roja, cada mes debo analizar el status actual de dichas unidades en planta con respecto a sus respectivos alamcenes y agregarle un comentario según sea el caso,

Todo eso esta en la misma hoja cabe destacar, yo tengo los seriales de cada unidad en otro libro excel que yo descargo con la información actualizada y a ojo comparo una por una y le coloco el comentario pertinente, ahorita como la producción es baja es relativamente, pero en sus mejores momentos en MMC Automotriz, se hablaba ya de 400 a 500 vehículos que tenia que revisar uno por uno y agregarle un comentario, el proceso para yo realizar esto es el siguiente:

Filtro en la columna Catalog, (el catalogo), en WareHoues el (Almacen) y en (Status) el Status por supuesto, me quedan una serie de unidades y de allí reviso a ojo con mi listado del otro libro actualizado y voy cambiando la información.

Lo que yo deseo es que como ya yo tengo en mi otro libro mi información actualizada, ya desde allá ya se cuales son las que están en el almacen y con su información correspondiente, simplemente copiar desde allá, y pegar aparte que no afecte la tabla actual y este filtre, cuando me refiero a filtre es que las selecciones temporalmente mientras las edito y luego que vuelva a quedar como estaban ya que esta tabla tiene un orden muy especifico.

El archivo pesa como 5mb por eso no se si pueda enviarlo pero como dije en un principio el archivo no es el mismo cada mes, me llega, lo edito y lo reenvío.

Gracias por tomarte la molestia por leer todo esto. Saludos

,

H o l a:

No entendí qué es lo que haces específicamente:

Entiendo que tus pasos son estos:

"Filtro en la columna Catalog, (el catalogo), en WareHoues el (Almacen) y en (Status) el Status por supuesto, me quedan una serie de unidades y de allí reviso a ojo con mi listado del otro libro actualizado y voy cambiando la información."

Pero, para entender, tendrías que explicarme con un ejemplo, es decir, primero, mencionas: "Filtro en la columna Catalog", ¿pero con cuál dato filtras?

Segundo, filtras el Almacén, ¿pero con cuál dato?

Tercero, filtras el estatus, ¿pero con cuál dato?

Ya hiciste 3 filtros, y dices "reviso a ojo con mi listado del otro libro", pero no sé si alguna de tus imágenes pusiste el "otro libro" y qué columnas comparas contra cuáles columnas.

Entonces, para entender lo que necesitas, tienes que explicarme paso a paso, pero con un ejemplo, utilizando datos reales de tus hojas, entiendo que solamente es un ejemplo y que lo tienes que repetir varias veces, pero necesito de un ejemplo para ponerlo en una macro y que se ejecute en automático varias veces.

Ahora explícame en qué te ayudo, con el filtro o con la comparación, ¿o con el filtro y la comparación o solamente con la comparación?

S aludos

Si cierto filtro varias columnas porque cada una representa un criterio y es más especifico, pero si en dado caso ya tengo en otro libro los datos actualizados con la información requerida, con solo colocar los seriales de la otra hoja en la hoja que estoy trabajando puedo trabajar rápidamente con los seriales que necesito y así ir poco a poco. A ver te adjunto ambos libros, un libro que es con el que tengo que trabajar y editar y otro donde están los datos actualzados. Te lo envíe a tu correo Yahoo.

Prefereria que solo me ayudases con el filtro, fíjate que en la hoja tengo los mismos carros (Seriales) la diferencia es que tienen un status actualizado y un almacen distinto, claro ya yo había terminado de hacerlo antes de plantearme esta pregunta por eso es que en ambos casos están iguales, pero cuando llega ese reporte los almacenes y los status son distintos y debo comparar ambos, mi forma que veo de hacerlo más fácil es copiar de poco los seriales que ya estén en un respectivo almacen del libro actualizo a una columna oculta o un espacio dedicado a seleccionar esos seriales unicamente. Y luego una vez que se filtre o se seleccionen yo cambio rápidamente sus status y almacenes, luego sigo copiando de a poco y ahí voy sobre la marcha. Lo hago de esa manera porque en la columna Remarks siempre se le coloca un comentario de manera lógica que quizás no pueda automatizarse, ya que a veces puede ser unidades con golpes, defectos, sin reparar etc es algo que se le coloca muy aleatorio según el caso, por eso me inclino más por el filtrado . je je se que estoy muy liado para explicar, pero de verdad agradezco que compartas tu conocimiento.

Te anexo las 2 macros para poner y quitar el filtro

Sub FiltrarConCriterios()
'Por.Dante Amor
    Set h1 = Sheets("Datos")        'Hoja de datos
    col1 = "A"                      'Columna inicial de datos
    col2 = "G"                      'Columna final de datos
    '
    u1 = h1.Range("A" & Rows.Count).End(xlUp).Row
    u2 = h1.Range("K" & Rows.Count).End(xlUp).Row
    h1.Range(col1 & "1:" & col2 & u1).AdvancedFilter Action:=xlFilterInPlace, _
        CriteriaRange:=h1.Range("K1:K" & u2), Unique:=False
End Sub
'
Sub QuitarFiltro()
'Por.Dante Amor
    On Error Resume Next
    ActiveSheet.ShowAllData
End Sub

R ecuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas