Macro de Autofiltro Dinámico

07/10/2005 - 16:02 por Alejandro | Informe spam
que tal, tengo una planilla con varias columnas, una de ellas es de fecha
con formato dd/mm/aaaa, a su vez creé una macro que realiza varios filtro a
la vez, pero me gustaría que el último filtro en la columna de fecha me
consulte a través de una ventana a partir de que fecha (teniendo en cuenta
que el criterio es fijo "menor que") quiero hacer el filtro. Cuales serían
las líneas para eso??? Muchas gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
08/10/2005 - 07:26 | Informe spam
hola, Alejandro !

... varias columnas, una de ellas es de fecha con formato dd/mm/aaaa... una macro que realiza varios filtro
... me gustaria que el ultimo filtro en la columna de fecha me consulte a traves de una ventana a partir de que fecha
(teniendo en cuenta que el criterio es fijo "menor que") quiero hacer el filtro [...]



-> suponiendo que la columna de fechas es la columna 'A'... y que la 'cabecera' es la fila 1...
Y... que los datos en la columna de fecha SON -efectivamente- datos_fecha [sin importar el 'formato']...
-> toma tambien en cuenta que 'tratar' con fechas [en ocasiones] interviene la configuracion e idioma [excel/windows] :(
prueba con el siguiente codigo [lo que no se es cual/como/cuando/... seria 'el ultimo filtrado']
[he tratado de +/- proteger algunos de los posibles convencionalismos regionales] :))

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
en un modulo de codigo 'norma' ==Sub Pregunta_Fecha()
Dim Fecha As String
Pregunta:
Fecha = InputBox("Introduce la fecha para criterio del autofiltro" & vbCr & _
"Utiliza por favor el formato: dd-mmm-aaaa" & vbCr & _
"Siguiendo el ejemplo siguiente...", "", _
Format(Date, "dd-mmm-yyyy"))
If Fecha = "" Then _
If MsgBox("Deseas cancelar el procedimiento?", vbYesNo) = vbYes _
Then Exit Sub Else GoTo Pregunta
Range("a1").AutoFilter Field:=1, Criteria1:="<" & CDate(Fecha)
End Sub
Respuesta Responder a este mensaje
#2 Alejandro
08/10/2005 - 23:36 | Informe spam
Gracias Héctor. La idea es esa.. pero no funciona. le hice una modificación
en el comando format le puse el mes así: "mm" no así: "mmm". Porque el
formato de las fechas es por ej: 10/02/2005. Pero me filtra todo y no
aparece nada el cuadro aparece perfecto el ejemplo del formato tb está bien
y cuando abro la fecha del autofiltro me voy a personalizar y los criterios
estan bien. El problema es que me filtra todo. Como lo soluciono??? Muchas
gracias


"Héctor Miguel" escribió en el mensaje
news:%
hola, Alejandro !

... varias columnas, una de ellas es de fecha con formato dd/mm/aaaa...
una macro que realiza varios filtro
... me gustaria que el ultimo filtro en la columna de fecha me consulte a
traves de una ventana a partir de que fecha
(teniendo en cuenta que el criterio es fijo "menor que") quiero hacer el
filtro [...]



-> suponiendo que la columna de fechas es la columna 'A'... y que la
'cabecera' es la fila 1...
Y... que los datos en la columna de fecha SON -efectivamente-
datos_fecha [sin importar el 'formato']...
-> toma tambien en cuenta que 'tratar' con fechas [en ocasiones]
interviene la configuracion e idioma [excel/windows] :(
prueba con el siguiente codigo [lo que no se es cual/como/cuando/...
seria 'el ultimo filtrado']
[he tratado de +/- proteger algunos de los posibles convencionalismos
regionales] :))

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
en un modulo de codigo 'norma' ==> Sub Pregunta_Fecha()
Dim Fecha As String
Pregunta:
Fecha = InputBox("Introduce la fecha para criterio del autofiltro" & vbCr
& _
"Utiliza por favor el formato: dd-mmm-aaaa"
& vbCr & _
"Siguiendo el ejemplo siguiente...", "", _
Format(Date, "dd-mmm-yyyy"))
If Fecha = "" Then _
If MsgBox("Deseas cancelar el procedimiento?", vbYesNo) = vbYes _
Then Exit Sub Else GoTo Pregunta
Range("a1").AutoFilter Field:=1, Criteria1:="<" & CDate(Fecha)
End Sub

Respuesta Responder a este mensaje
#3 Héctor Miguel
09/10/2005 - 05:28 | Informe spam
hola, Alejandro !

... La idea es esa.. pero no funciona.
le hice una modificacion en el comando format le puse el mes asi: "mm" no asi: "mmm".
Porque el formato de las fechas es por ej: 10/02/2005. Pero me filtra todo y no aparece nada
el cuadro aparece perfecto el ejemplo del formato tb esta bien
y cuando abro la fecha del autofiltro me voy a personalizar y los criterios estan bien.
El problema es que me filtra todo. Como lo soluciono?



tal como te comentaba en el mensaje anterior...
-> ... 'tratar' con fechas [en ocasiones] interviene la configuracion e idioma [excel/windows] :(

si en tu configuracion regional, el orden de fecha-corta es dd-mm-aa... para VBA [que es 'US-Centric'] ES mm-dd-aa :))
-> modifica la ultima instruccion de la propuesta [la linea que ejecuta el autofiltro]...
de -> Range("a1").AutoFilter Field:=1, Criteria1:="<" & CDate(Fecha)
a -> Range("a1").AutoFilter Field:=1, Criteria1:="<" & CLng(CDate(Fecha))

comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Alejandro
09/10/2005 - 23:12 | Informe spam
Muchas gracias Héctor. Funcionó Perfecto. Me podrías explicar cual es la
diferencia entre CDate(Fecha) y CLng(CDate(Fecha)). Te comento que mi
configuración regional es la Español Argentinta y el formato de fecha corta
es dd/mm/aaaa.



"Héctor Miguel" escribió en el mensaje
news:
hola, Alejandro !

... La idea es esa.. pero no funciona.
le hice una modificacion en el comando format le puse el mes asi: "mm" no
asi: "mmm".
Porque el formato de las fechas es por ej: 10/02/2005. Pero me filtra
todo y no aparece nada
el cuadro aparece perfecto el ejemplo del formato tb esta bien
y cuando abro la fecha del autofiltro me voy a personalizar y los
criterios estan bien.
El problema es que me filtra todo. Como lo soluciono?



tal como te comentaba en el mensaje anterior...
-> ... 'tratar' con fechas [en ocasiones] interviene la configuracion e
idioma [excel/windows] :(

si en tu configuracion regional, el orden de fecha-corta es dd-mm-aa...
para VBA [que es 'US-Centric'] ES mm-dd-aa :))
-> modifica la ultima instruccion de la propuesta [la linea que ejecuta el
autofiltro]...
de -> Range("a1").AutoFilter Field:=1, Criteria1:="<" & CDate(Fecha)
a -> Range("a1").AutoFilter Field:=1, Criteria1:="<" &
CLng(CDate(Fecha))

comentas?
saludos,
hector.

Respuesta Responder a este mensaje
#5 Héctor Miguel
10/10/2005 - 07:10 | Informe spam
hola, Alejandro !

... cual es la diferencia entre CDate(Fecha) y CLng(CDate(Fecha)).
... mi configuracion regional es la Español Argentina y el formato de fecha... es dd/mm/aaaa.



[hasta donde se]... del uso de las funciones de conversion de tipos de datos [sobre todo hablando de fechas]...
1) CDate(texto_fecha) utiliza el formato/orden de fechas que se tiene en la configuracion regional de windows
2) VBA [siendo US-Centric) ESPERA y 'trabaja' -siempre/solo- con el formato de fechas mm-dd-yy
3) si en la configuracion regional el formato de fechas es NO-USA... hay 'conflictos' con la interpretacion EN VBA
4) si [al fin de cuentas en excel] las fechas SON numeros seriales...
-> una 'nueva' re/conversion con el tipo de datos CLng(...) +/- te asegura la 'transparencia' entre VBA-usuario :))

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