Filtro avanzado en vba con rango de fechas y datos

Tengo un userform el cual puedo ingresar palabras y fechas x ( las fechas mediante un calendario), las palabras claves me las filtra bien pero al momento de ingresar la fecha y realizar el filtro, me aparece la fecha en la celda pero no realiza el filtro, ¿cuál es mi error?

1 Respuesta

Respuesta
1

Esta es un opción para trabajar el filtro avanzado con fechas.

En unas celdas pones las fechas por ejemplo D2 y E2. En otras celdas (las del filtro) pones las siguientes fórmulas.

En la celda B2:

=">="&D2

En la celda C2:

="<="&E2

Así quedaría el ejemplo, revisa cómo en las celdas B2 y C2 aparece la fecha pero con el número interno que utiliza excel para las fechas.


Este sería el ejemplo del código, el rango de criterios toma las celdas b2 y c2 con la fecha convertida en número.

    u = Range("A" & Rows.Count).End(xlUp).Row
    Range("A4:B" & u).AdvancedFilter Action:=xlFilterInPlace, _
        CriteriaRange:=Range("A1:C2"), Unique:=False

Si aplicas el código al ejemplo, el resultado sería el siguiente:


Aplica el ejemplo en tu formulario.

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

seguí tus pasos, pero me dije pasando lo mismo... no me filtra nada, que puede ser?

Puedes poner unas imágenes de lo que tienes

Esto es lo que tengo en visual basic, al momento de aceptar no me filtra, en las celdas v2 y w2 estoy insertando las fechas para que así, como lo explicaste tu, se pueda visualizar en las celdas v4 y w4

¿Pero en qué momento pasas las fechas de tu userform a las celdas v2 y w2?

Supongo que tendrías que poner algo como esto:

Sub filtrar()
    Sheets("Datos").Select
    Range("V2").Value = textbox1.Value
    Range("W2").Value = TextBox2.Value
    Columns("A:P").advancefilter Action:=xlFilterCopy, criteriarange:=Range("T3:AI4"), _
        copytorange:=Range("T7"), unique:=False
End Sub

También tienes que considerar pasar lo que tienes en el textbox como fecha, entonces debería quedar así:

    Sheets("Datos").Select
    Range("V2").Value = CDate(textbox1.Value)
    Range("W2").Value = CDate(TextBox2.Value)
    Columns("A:P").advancefilter Action:=xlFilterCopy, criteriarange:=Range("T3:AI4"), _
        copytorange:=Range("T7"), unique:=False

Otra cosa, tu macro Filtrar está dentro de tu userform?

Revisa nuevamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas