FILTRAR POR FECHAS

09/07/2007 - 19:52 por galtor | Informe spam
Hola de nuevo

Estoy tratando de filtrar informacion de campos de fechas que cumplan
con un rango de fechas desde un formulario (fechaini a fechafin), para
copiar en otra hoja sólo la información que cumpla con estos
parámetros.

Conozco un poco de lenguaje sql pero no se puede aplicar acá y estoy
atorado con eso, estoy usando un "while" para buscar hacia abajo por
toda la culumna que tiene el parametro fecha y en cada celda pauso el
proceso para comparar los datos usando una condicion, mas o menos así:

private sub filtrarRegistros()
Dim i as integer
'funcion que me coloca en la hoja y celda donde quiero buscar
call posicion_busqueda(8,"B3")
i=0
While not isempty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
'Con esta condicion comparo los datos
If ActiveCell.Value >= txtDel.Text And ActiveCell.Value <txtAl.Text Then
i = i + 1
'si cumplen almaceno el id del registro en un arreglo
idPolizas(i) = ActiveCell.Offset(0, -8).Value
End If
Wend
'y luego mando llamar otra funcion con la que lleno la hoja con los
datos filtrados
Call llenaReporte

end sub

El problema es que no me filtra nada, manda todos los registros que
tengo en la hoja aunque no cumplan con los parametros, incluso las
celdas sin valor, debo usar otras instrucciones.

Algo estoy haciendo mal! ¿alguna sugerencia para este novato que no
deja de postear consultas? -jejeje

Gracias de antemano
Cristian

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
09/07/2007 - 21:33 | Informe spam
hola, Cristian !

1) considera que los textboxes [txtDel.Text y txtAl.Text] pueden *tomar* todo tipo de entradas textuales y...
2) [seguramente] tu configuracion regional utiliza un formato/secuencia/orden/... de fechas [p.e.] d/m/aa [pero]...
3) puesto que vba ES 'US-Centric'... los formatos de fecha 'los /toma/lee' con el orden m/d/aa [ademas]...
4) en tanto no conviertas a valores-fecha que se puedan comparar... no puedes usar instrucciones del tipo:
-> If ActiveCell.Value >= txtDel.Text And ActiveCell.Value <= txtAl.Text Then
[o sea... comparando *textos* versus el *activecell.value* ???]

podrias comentar cual es la *historia completa* y/o el objetivo que buscas con los... *filtrados* ?
- autofiltros ?... filtros avanzados ?... vas a rellenar algun otro control ?... que vas a hacer con el resultado ? -???-

saludos,
hector.

__ la consulta original __
Estoy tratando de filtrar informacion de campos de fechas que cumplan con un rango de fechas desde un formulario (fechaini a fechafin)
para copiar en otra hoja sólo la información que cumpla con estos parametros.
Conozco un poco de lenguaje sql pero no se puede aplicar aca y estoy atorado con eso
estoy usando un "while" para buscar hacia abajo por toda la culumna que tiene el parametro fecha
y en cada celda pauso el proceso para comparar los datos usando una condicion, mas o menos asi:

private sub filtrarRegistros()
Dim i as integer
'funcion que me coloca en la hoja y celda donde quiero buscar
call posicion_busqueda(8,"B3")
i=0
While not isempty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
'Con esta condicion comparo los datos
If ActiveCell.Value >= txtDel.Text And ActiveCell.Value <= txtAl.Text Then
i = i + 1
'si cumplen almaceno el id del registro en un arreglo
idPolizas(i) = ActiveCell.Offset(0, -8).Value
End If
Wend
'y luego mando llamar otra funcion con la que lleno la hoja con los datos filtrados
Call llenaReporte

end sub

El problema es que no me filtra nada, manda todos los registros que tengo en la hoja aunque no cumplan con los parametros
incluso las celdas sin valor, debo usar otras instrucciones.
Algo estoy haciendo mal! alguna sugerencia para este novato que no deja de postear consultas? -jejeje
Respuesta Responder a este mensaje
#2 galtor
09/07/2007 - 22:06 | Informe spam
On 9 jul, 14:33, "Héctor Miguel"
wrote:
hola, Cristian !

1) considera que los textboxes [txtDel.Text y txtAl.Text] pueden *tomar* todo tipo de entradas textuales y...
2) [seguramente] tu configuracion regional utiliza un formato/secuencia/orden/... de fechas [p.e.] d/m/aa [pero]...
3) puesto que vba ES 'US-Centric'... los formatos de fecha 'los /toma/lee' con el orden m/d/aa [ademas]...
4) en tanto no conviertas a valores-fecha que se puedan comparar... no puedes usar instrucciones del tipo:
-> If ActiveCell.Value >= txtDel.Text And ActiveCell.Value <= txtAl.Text Then
[o sea... comparando *textos* versus el *activecell.value* ???]

podrias comentar cual es la *historia completa* y/o el objetivo que buscas con los... *filtrados* ?
- autofiltros ?... filtros avanzados ?... vas a rellenar algun otro control ?... que vas a hacer con el resultado ? -???-

saludos,
hector.

__ la consulta original __



> Estoy tratando de filtrar informacion de campos de fechas que cumplan con un rango de fechas desde un formulario (fechaini a fechafin)
> para copiar en otra hoja sólo la información que cumpla con estos parametros.
> Conozco un poco de lenguaje sql pero no se puede aplicar aca y estoy atorado con eso
> estoy usando un "while" para buscar hacia abajo por toda la culumna que tiene el parametro fecha
> y en cada celda pauso el proceso para comparar los datos usando una condicion, mas o menos asi:

> private sub filtrarRegistros()
> Dim i as integer
> 'funcion que me coloca en la hoja y celda donde quiero buscar
> call posicion_busqueda(8,"B3")
> i=0
> While not isempty(ActiveCell)
> ActiveCell.Offset(1, 0).Activate
> 'Con esta condicion comparo los datos
> If ActiveCell.Value >= txtDel.Text And ActiveCell.Value <= txtAl.Text Then
> i = i + 1
> 'si cumplen almaceno el id del registro en un arreglo
> idPolizas(i) = ActiveCell.Offset(0, -8).Value
> End If
> Wend
> 'y luego mando llamar otra funcion con la que lleno la hoja con los datos filtrados
> Call llenaReporte

> end sub

> El problema es que no me filtra nada, manda todos los registros que tengo en la hoja aunque no cumplan con los parametros
> incluso las celdas sin valor, debo usar otras instrucciones.
> Algo estoy haciendo mal! alguna sugerencia para este novato que no deja de postear consultas? -jejeje- Ocultar texto de la cita -

- Mostrar texto de la cita -



Gracias Hector

Como siempre estás ahí a la orden de las consultas...

Tienes razón no he formateado los campos y tienes razón no me había
percatado de que están mm/dd/aa ¿si convierto los valores puede
funcionar? -mientras espero tu respuesta lo probaré-
Y bueno mi procedimiento a través de un formulario es que para
simplificar el proceso a los usuario que usan el libro en mi despacho,
simplemente se trata de generar un reporte en base a dos fechas que se
piden. Es muy sencillo. Y al pegarlos en la otra hoja estoy dando
formato al mismo tiempo a las celdas para que puedan imprimirla con
los resultados que haya arrojado, esta hoja es, digamos, temporal
porque al pedir otro reporte borro todo lo anterior.

Quedo al pendiente de tus sugerencias

Cristian
Respuesta Responder a este mensaje
#3 galtor
09/07/2007 - 22:21 | Informe spam
On 9 jul, 14:33, "Héctor Miguel"
wrote:
hola, Cristian !

1) considera que los textboxes [txtDel.Text y txtAl.Text] pueden *tomar* todo tipo de entradas textuales y...
2) [seguramente] tu configuracion regional utiliza un formato/secuencia/orden/... de fechas [p.e.] d/m/aa [pero]...
3) puesto que vba ES 'US-Centric'... los formatos de fecha 'los /toma/lee' con el orden m/d/aa [ademas]...
4) en tanto no conviertas a valores-fecha que se puedan comparar... no puedes usar instrucciones del tipo:
-> If ActiveCell.Value >= txtDel.Text And ActiveCell.Value <= txtAl.Text Then
[o sea... comparando *textos* versus el *activecell.value* ???]

podrias comentar cual es la *historia completa* y/o el objetivo que buscas con los... *filtrados* ?
- autofiltros ?... filtros avanzados ?... vas a rellenar algun otro control ?... que vas a hacer con el resultado ? -???-

saludos,
hector.

__ la consulta original __



> Estoy tratando de filtrar informacion de campos de fechas que cumplan con un rango de fechas desde un formulario (fechaini a fechafin)
> para copiar en otra hoja sólo la información que cumpla con estos parametros.
> Conozco un poco de lenguaje sql pero no se puede aplicar aca y estoy atorado con eso
> estoy usando un "while" para buscar hacia abajo por toda la culumna que tiene el parametro fecha
> y en cada celda pauso el proceso para comparar los datos usando una condicion, mas o menos asi:

> private sub filtrarRegistros()
> Dim i as integer
> 'funcion que me coloca en la hoja y celda donde quiero buscar
> call posicion_busqueda(8,"B3")
> i=0
> While not isempty(ActiveCell)
> ActiveCell.Offset(1, 0).Activate
> 'Con esta condicion comparo los datos
> If ActiveCell.Value >= txtDel.Text And ActiveCell.Value <= txtAl.Text Then
> i = i + 1
> 'si cumplen almaceno el id del registro en un arreglo
> idPolizas(i) = ActiveCell.Offset(0, -8).Value
> End If
> Wend
> 'y luego mando llamar otra funcion con la que lleno la hoja con los datos filtrados
> Call llenaReporte

> end sub

> El problema es que no me filtra nada, manda todos los registros que tengo en la hoja aunque no cumplan con los parametros
> incluso las celdas sin valor, debo usar otras instrucciones.
> Algo estoy haciendo mal! alguna sugerencia para este novato que no deja de postear consultas? -jejeje- Ocultar texto de la cita -

- Mostrar texto de la cita -



Hector Gracias!!

Ya está listo, sólo bastó con el CDate(txtdel) como me dijiste y
está funcionando

Qué importante, en realidad estaba dejando el formato de los campos
para después de terminar otros módulos pero creo que debo hacerlo
antes, porque hay otros que requiero convertir.

Gracias nuevamente, estaré en contacto

Cristian
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida