Saltar al contenido

Convertir un rango de datos en filtro


Recommended Posts

publicado

Estimados, tengo el siguiente problema, quiero hacer filtro con una variedad de datos ( estos datos los quiero sacar de una tabla X, que pueden ser números tan diferentes como 4, 5060, 876, etc.

como puedo hacer para introducir estos números en una variable y que se pueda filtrar por esta?

he tratado simplemente con 1 numero y ni por eso me sale:

Sub Macro1()Dim suma As Double
Dim reparto As Double
suma = 0
    Range("P3").Select
    'Range(Selection, Selection.End(xlDown)).Select
    Do While ActiveCell <> ""
        suma = suma + ActiveCell.Value
        ActiveCell.Offset(1, 0).Activate
    Loop
reparto = suma * 0.016
Range("p1127").Value = reparto
ActiveSheet.ListObjects("Tabla1").Range.AutoFilter Field:=16, Criteria1:= _
        ">=reparto", Operator:=xlAnd
'Call Macro2
End Sub

cuando reviso el filtro solo me aparece que filtro por la palabra "reparto".

como hago para que tome en cuenta el numero que esta dentro de esta variable, y despues de eso como hago para que sean varios numeros los que pueda filtrar?

muchas gracias por el apoyo.

Saludos,

daniel

publicado

El problema es que en field se refiere a la columna que intentas filtrar, por lo que ahí debe de ir el titulo de la columna, lo que quieres hacer sería así:

ActiveSheet.ListObjects("Tabla1").Range.AutoFilter Field:=x, Criteria1:=">=reparto"

Solo modifica la x en el campo de field por el nombre de la columna que quieras filtrar

publicado

El codigo es exactamente igual al que yo puse, el filtro sigue saliendo como texto: "reparto" y no por el valor de la variable Reparto

publicado

Es verdad, vendría siendo así, yo ya lo probé con variable y funciona:

ActiveSheet.ListObjects("Tabla1").Range.AutoFilter Field:=16, Criteria1:=">=" & reparto

publicado

Ahora si filtra perfectamente! pero igual tengo una duda mas, como hago para poder tener varios criterios?, me refiero para que el valor de "reparto" sean por ejemplo 4, 7, 45, 600, 756, etc. y filtre por estos numeros?

gracias por el apoyo!

publicado

Mira, si tu grabas una macro cuando filtras por varios valores te da un código como este:

ActiveSheet.ListObjects("Tabla2").Range.AutoFilter Field:=2, Criteria1:= _
        Array("29", "5", "8"), Operator:=xlFilterValues

Tal vez lo puedas hacer entonces, pero tendrías que hacer una variable como Array y no se como tome los valores, lo mas sencillo tal vez sería usar diferentes variables, de hecho no puedes almacenar mas de un valor al mismo tiempo en una variable Integer asi que suena lógico. Investiga por tu cuenta y yo lo hago acá a ver quien encuentra la respuesta primero

- - - - - Mensaje combinado - - - - -

Pues si era con matrices y uufff, esto si me costó trabajo hacerlo funcionar, pero te subo el archivo donde lo hice para que solo adaptes el código al tuyo

Filtro.zip

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.