Filtros y fechas: ¿imposible?

12/08/2005 - 21:03 por RHT | Informe spam
Saludos.
Desde hace varios días estoy tratando de finalizar una pequeña aplicación,
pero no lo he conseguido.
Necesito desesperadamente de su auxilio y consejo.

Se los trataré de explicar rápido.
Concentro registros desde muchos libros en uno solo. Los ordeno por fecha de
movimiento. Después muestro un Form con dos DTPickers, para que el usuario
indique el rango de fechas del reporte que desea. Entonces paso los valores
de los DTPickers al autofiltro del libro con los concentrados por VBA.
Error: Cero registros.

Al principio sufrí con la inversión de las fechas en los campos mes y dia,
por ejemplo, 01/08/05 se me volvía 08/01/05.
Use dateformat, dateserial, convertí las fechas a String y nada.
Entonces, cambié todas las fechas de los archivos origen a texto (y desde
luego las rutinas que los generan), para solo tener que pelear con texto.
Error: No se pueden filtrar rangos de fecha que estan en formato de
texto!

Por último: Cambié los formatos de los DTPickers a custom: 01/Ago/05.
Problema: sólo funciona si pongo la condición a O en vez de a Y.
Que quiero decir? Que si paso las fechas delimitadoras del rango deseado y
luego digo:

Selection.AutoFilter Field:, Criteria1:=">=" & Trim(Fecha_inicial_texto),
Operator:=xlAnd _
, Criteria2:="<=" & Trim(Fecha_final_texto)

(Porque tuve que pasar las fechas a texto, si no no me funcionaba)

En el autofiltro aparecen como: 01/07/05 [lo cual es correcto] y 04/Ago/05
[lo cual también es correcto pero tiene otro formato, por lo que hace
NADA!!]

En cambio si pongo:

Selection.AutoFilter Field:, Criteria1:=">=" & Trim(Fecha_inicial_texto),
Operator:=xlOr _
, Criteria2:="<=" & Trim(Fecha_final_texto)

En el autofiltro aparecen como: 01/Jul/05 [lo cual es perfectamente
correcto] y 04/Ago/05 [lo cual también es correcto pero como le dije O,
muestra un montón de registros que no necesito]

En pocas palabras, se cambia el formato de uno de los parámetros del
autofiltro si uso la condición Y, pasándolos por VBA.

Agradezco de antemano cualquier orientación.
 

Leer las respuestas

#1 RHT
12/08/2005 - 21:55 | Informe spam
Muchas gracias Carlos por tu pronta respuesta

Creo que no funciona.
Pongo las fechas incial y final como 04/Jul/05 y 02/ago/05
y en el filtro me aparece

07/04/05 [mal] y 02/Ago/05 [bien]

Que podrá ser?

"Carlos Durán Urenda" escribió en el mensaje
news:
Prueba con ...

Selection.AutoFilter Field:, Criteria1:=">=" &
Format(Fecha_inicial_texto, "MM/dd/yy"), Operator:=xlAnd _
, Criteria2:="<=" & Format(Fecha_final_texto,"MM/dd/yy")



y me dices

Saludos
Carlos Durán




"RHT" escribió en el mensaje
news:
Saludos.
Desde hace varios días estoy tratando de finalizar una pequeña
aplicación, pero no lo he conseguido.
Necesito desesperadamente de su auxilio y consejo.

Se los trataré de explicar rápido.
Concentro registros desde muchos libros en uno solo. Los ordeno por fecha
de movimiento. Después muestro un Form con dos DTPickers, para que el
usuario indique el rango de fechas del reporte que desea. Entonces paso
los valores de los DTPickers al autofiltro del libro con los concentrados
por VBA. Error: Cero registros.

Al principio sufrí con la inversión de las fechas en los campos mes y
dia, por ejemplo, 01/08/05 se me volvía 08/01/05.
Use dateformat, dateserial, convertí las fechas a String y nada.
Entonces, cambié todas las fechas de los archivos origen a texto (y desde
luego las rutinas que los generan), para solo tener que pelear con texto.
Error: No se pueden filtrar rangos de fecha que estan en formato de
texto!

Por último: Cambié los formatos de los DTPickers a custom: 01/Ago/05.
Problema: sólo funciona si pongo la condición a O en vez de a Y.
Que quiero decir? Que si paso las fechas delimitadoras del rango deseado
y luego digo:

Selection.AutoFilter Field:, Criteria1:=">=" &
Trim(Fecha_inicial_texto), Operator:=xlAnd _
, Criteria2:="<=" & Trim(Fecha_final_texto)

(Porque tuve que pasar las fechas a texto, si no no me funcionaba)

En el autofiltro aparecen como: 01/07/05 [lo cual es correcto] y
04/Ago/05 [lo cual también es correcto pero tiene otro formato, por lo
que hace NADA!!]

En cambio si pongo:

Selection.AutoFilter Field:, Criteria1:=">=" &
Trim(Fecha_inicial_texto), Operator:=xlOr _
, Criteria2:="<=" & Trim(Fecha_final_texto)

En el autofiltro aparecen como: 01/Jul/05 [lo cual es perfectamente
correcto] y 04/Ago/05 [lo cual también es correcto pero como le dije O,
muestra un montón de registros que no necesito]

En pocas palabras, se cambia el formato de uno de los parámetros del
autofiltro si uso la condición Y, pasándolos por VBA.

Agradezco de antemano cualquier orientación.







Preguntas similares