Excel - Filtro doble VBA

 
Vista:
sin imagen de perfil

Filtro doble VBA

Publicado por Mike (4 intervenciones) el 08/09/2021 14:50:21
Hola.

Hace tiempo pedí ayuda en este canal y me fué muy bien.

Necesito de nuevo vuestra ayuda.

El archivo adjunto funciona de la siguiente manera:

- Si hacemos doble click en cualquier celda con datos desde A22:D22 y filas posteriores, filtra y sólo muestra la referéncia seleccionada, tantas veces como esté en el archivo junto a su descripción.

- El filtro se quita con doble click en E21.

- Si hacemos doble click en el rango A21:D21 se nos abre un frm que hace lo mismo que el primer paso de una manera más manual.

Lo que necesito es poder filtrar 2 a la vez, me explico.

Si por ejemplo hago doble click en A22, me mostrará todo lo relativo al dato "AAA", si a continuación hago doble click en B22, el filtro anterior desaparece y me filtrará por el dato "25/21".

Lo que necesito es alguna manera donde pueda filtrar por 1 o 2 columnas.

A veces será sólo una de las 4 primeras columnas, pero habrá ocasiones en que necesite filtrar por las columnas A y B a la vez.

Espero haberme explicado bien.

La programación está dentro de Hoja1 y en el frm FILTRAR.

Ojalá me podáis ayudar.

Muchas gracias de antemano.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Filtro doble VBA

Publicado por Antoni Masana (2464 intervenciones) el 08/09/2021 18:15:22
Soluciones o posibles soluciones:

Haces Click con el botón Derecho en una columna de la A al D de la fila 22, guardas el dato y la columna en un par de variables publicas y pones el rango A21:E21 en naranja.

Haces DobleClick con el botón izquierdo y si la variable pública tiene datos filtras por dos columnas y si esta vacía filtras por una.
Al quitar el filtro limpias las variables públicas.

En el caso del formulario muestra los 4 ListBox para filtrar por más de una columna.

Te adjunto el libro con unos cambios en la presentación del código.
Quizás creas que es una manía mía y quizás lo sea, pero llevo muchos años programando y así se lee mejor y si le pones comentarios de que hace cada cosa no se tiene que ir adivinando y ayuda mucho a entenderlo.

Por otro lado la estructura de los datos no es la más óptima y te estas complicando la vida para algo que ya esta resuelto en Excel.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Filtro doble VBA

Publicado por Mike (4 intervenciones) el 08/09/2021 18:51:49
No acabo de comprender como funciona lo del Right Click.

Y tampoco entiendo lo de las variables.

En realidad soy muy novato en VBA y este proyecto es un cúmulo de parches que he sacado de aquí y de allá que no acabo de comprender del todo.

Agradezco mucho tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Filtro doble VBA

Publicado por Antoni Masana (2464 intervenciones) el 09/09/2021 16:19:55
Te comento varias cosas.

1º.- No entiendo la razón o el motivo de tener este formato de datos. La columna descripción ocupa varias filas y no siempre el mismo numero, las hay de 3, 4 y 5 filas, Si todo es el mismo concepto puede ir todo en una sola celda o en varias columnas y esto hace que cada MODELO + KW + PR + PP sea una sola fila y más fácil de consultar.

2º.- A partir de la columna F ¿Hay más datos que has eliminado para la consulta? ¿Tienen que ver con los datos de las Columnas A-E?

3º.- No he comprendido lo hace para filtrar. Cuando hace Doble Click en el rango A:D se llama a este evento:

1
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Pero no entiendo cómo filtra, ni a quien llama para el filtrado. Me pierdo.
Para adaptar el código al simple o doble filtrado antes tengo que entender como lo hace y de momento no lo veo.

Cuéntame sobre el los puntos 1-2 y lo que sepas del 3 y yo intentare entender la macro.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar