Formato fechas en filtro avanzado (AdvancedFilter xlFilterCopy en VBA) en Excel 2003 y Excel 2007

15/05/2010 - 19:44 por Valentín Playá | Informe spam
Tengo un lío usando fechas como parámetro en el filtro avanzado
(AdvancedFilter Action:=xlFilterCopy) ejecutado desde VBA que no estoy
seguro si es culpa de Excel o mía.

Intento explicar el problema: Uso la versión española de Excel. Pongo
los parámetros para el filtro avanzado con la instrucción VBA :
Sheets("Parameters").Range("F2") = ">=" &
Format(Sheets("Jour").Range("B1"), "mm/dd/yyyy"). Si uso el formato de
fecha americano "mm/dd/yyyy" funciona bien el filtro en Excel 2007pero
no en Excel 2003. Por contra, si uso el formato europeo "dd/mm/yyyy"
funciona bien en Excel 2003 pero no en Excel 2007.

Para la solución simple pero evitando hacer el filtro a mano, ¿puedo
saber la versión de Excel en la que se ejecuta la macro?.

Para la solución de verdad, ¿alguna opción o alternativa para unificar
el formato de las fechas?. A mi no se me ocurre nada y arrastro este
problema desde hace unos días.

Gracias y saludos,

Valentín

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
17/05/2010 - 07:17 | Informe spam
hola, Valentín !

1) ambas versiones de excel estan en el mismo equipo ?, o...
que certeza tienes de que ambos equipos utilizan la misma configuracion regional ?
podria no ser "suficiente" conocer la version de excel que ejecuta la macro (???)

2) cual es el proposito de poner en [F2] de la hoja "parameters" UN criterio de evaluacion ? (">=")
tienes algun titulo en la celda [F1] ?, o piensas rellenar el resto de celdas de la columna [F] con otros criterios ?

3) cual es la columna en la hoja "parameters" que se va a comparar con el criterio ?
(probablemente convendria usar una formula y que el mismo excel se encargue de la evaluacion de la fecha ?)

saludos,
hector.

__ OP __
Tengo un lio usando fechas como parametro en el filtro avanzado (AdvancedFilter Action:=xlFilterCopy)
ejecutado desde VBA que no estoy seguro si es culpa de Excel o mia.

Intento explicar el problema: Uso la version española de Excel. Pongo los parametros para el filtro avanzado con la instruccion VBA :
Sheets("Parameters").Range("F2") = ">=" & Format(Sheets("Jour").Range("B1"), "mm/dd/yyyy").
Si uso el formato de fecha americano "mm/dd/yyyy" funciona bien el filtro en Excel 2007pero no en Excel 2003.
Por contra, si uso el formato europeo "dd/mm/yyyy" funciona bien en Excel 2003 pero no en Excel 2007.

Para la solucion simple pero evitando hacer el filtro a mano, puedo saber la version de Excel en la que se ejecuta la macro?.

Para la solución de verdad, alguna opción o alternativa para unificar el formato de las fechas?.
A mi no se me ocurre nada y arrastro este problema desde hace unos dias.
Respuesta Responder a este mensaje
#2 Valentín Playá
18/05/2010 - 12:16 | Informe spam
Hola Hector,

gracias por tu respuesta. Contesto a tus cuestiones:

1) las versiones de Excel están en distintos equipos que podrían tener
distinta configuración regional, pero todos tienen configurada la
fecha como dd/mm/aaaa. No veo otro parámetro en la configuración
regional que pueda afectar a la forma en que se comparan las fechas.

2) Quiero usar el filtro avanzado para extraer algunas filas de una
hoja a otra hoja según la fecha. Tengo en F1 en nombre de la columna.
Esto funciona correctamente cuando lo hago manualmente, el problema es
cuando trato de automatizarlo

3) Este es el código para poner los parámetros y hacer el filtro:

Sheets("Parameters").Range("F2") = ">=" &
Format(Sheets("Jour").Range("B1"), "mm/dd/yyyy")
Sheets("Parameters").Range("G2") = "<" &
Format(Sheets("Jour").Range("B1") + 1, "mm/dd/yyyy")
Sheets("Donnees").Columns("A:G").AdvancedFilter
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Parameters").Range("F1:G2"),
CopyToRange:=Sheets("JourDonnees").Columns("A:G"), Unique:=False

que como te digo funciona correctamente en los equipos con Excel 2007
con mm/dd/yyyy, y en los equipos con Excel 2003 con dd/mm/yyyy

Voy a ver si encuentro una fórmula que funcione.

Gracias de nuevo y saludos,

Valentín
***************************************************************************************************
On 17 mayo, 07:17, "Héctor Miguel"
wrote:
hola, Valentín !

1) ambas versiones de excel estan en el mismo equipo ?, o...
    que certeza tienes de que ambos equipos utilizan la misma configuracion regional ?
    podria no ser "suficiente" conocer la version de excel que ejecuta la macro (???)

2) cual es el proposito de poner en [F2] de la hoja "parameters" UN criterio de evaluacion ? (">=")
    tienes algun titulo en la celda [F1] ?, o piensas rellenar el resto de celdas de la columna [F] con otros criterios ?

3) cual es la columna en la hoja "parameters" que se va a comparar con el criterio ?
    (probablemente convendria usar una formula y que el mismo excel se encargue de la evaluacion de la fecha ?)

saludos,
hector.

__ OP __



> Tengo un lio usando fechas como parametro en el filtro avanzado (AdvancedFilter Action:=xlFilterCopy)
> ejecutado desde VBA que no estoy seguro si es culpa de Excel o mia.

> Intento explicar el problema: Uso la version española de Excel. Pongo los parametros para el filtro avanzado con la instruccion VBA :
> Sheets("Parameters").Range("F2") = ">=" & Format(Sheets("Jour").Range("B1"), "mm/dd/yyyy").
> Si uso el formato de fecha americano "mm/dd/yyyy" funciona bien el filtro en Excel 2007pero no en Excel 2003.
> Por contra, si uso el formato europeo "dd/mm/yyyy" funciona bien en Excel 2003 pero no en Excel 2007.

> Para la solucion simple pero evitando hacer el filtro a mano, puedo saber la version de Excel en la que se ejecuta la macro?.

> Para la solución de verdad, alguna opción o alternativa para unificar el formato de las fechas?.
> A mi no se me ocurre nada y arrastro este problema desde hace unos dias.
Respuesta Responder a este mensaje
#3 Valentín Playá
19/05/2010 - 17:34 | Informe spam
Hola,

no encuentro la solución. No veo la forma de usar una función con el
filtro avanzado. Lo que quiero es seleccionar las filas de una hoja de
un día, semana o mes, y moverlas a otra hoja.

No veo otra opción que hacerlo por código y olvidarme del filtro
avanzado.

Saludos,

Valentín
***************************************************************************************************Ç
On 18 mayo, 12:16, Valentín Playá wrote:
Hola Hector,

gracias por tu respuesta. Contesto a tus cuestiones:

1) las versiones de Excel están en distintos equipos que podrían tener
distinta configuración regional, pero todos tienen configurada la
fecha como dd/mm/aaaa. No veo otro parámetro en la configuración
regional que pueda afectar a la forma en que se comparan las fechas.

2) Quiero usar el filtro avanzado para extraer algunas filas de una
hoja a otra hoja según la fecha. Tengo en F1 en nombre de la columna.
Esto funciona correctamente cuando lo hago manualmente, el problema es
cuando trato de automatizarlo

3) Este es el código para poner los parámetros y hacer el filtro:

    Sheets("Parameters").Range("F2") = ">=" &
Format(Sheets("Jour").Range("B1"), "mm/dd/yyyy")
    Sheets("Parameters").Range("G2") = "<" &
Format(Sheets("Jour").Range("B1") + 1, "mm/dd/yyyy")
    Sheets("Donnees").Columns("A:G").AdvancedFilter
Action:=xlFilterCopy, _
        CriteriaRange:=Sheets("Parameters").Range("F1:G2"),
CopyToRange:=Sheets("JourDonnees").Columns("A:G"), Unique:=False

que como te digo funciona correctamente en los equipos con Excel 2007
con mm/dd/yyyy, y en los equipos con Excel 2003 con dd/mm/yyyy

Voy a ver si encuentro una fórmula que funcione.

Gracias de nuevo y saludos,

Valentín
*************************************************************************** ************************
On 17 mayo, 07:17, "Héctor Miguel"
wrote:



> hola, Valentín !

> 1) ambas versiones de excel estan en el mismo equipo ?, o...
>     que certeza tienes de que ambos equipos utilizan la misma configuracion regional ?
>     podria no ser "suficiente" conocer la version de excel que ejecuta la macro (???)

> 2) cual es el proposito de poner en [F2] de la hoja "parameters" UN criterio de evaluacion ? (">=")
>     tienes algun titulo en la celda [F1] ?, o piensas rellenar el resto de celdas de la columna [F] con otros criterios ?

> 3) cual es la columna en la hoja "parameters" que se va a comparar con el criterio ?
>     (probablemente convendria usar una formula y que el mismo excel se encargue de la evaluacion de la fecha ?)

> saludos,
> hector.

> __ OP __

> > Tengo un lio usando fechas como parametro en el filtro avanzado (AdvancedFilter Action:=xlFilterCopy)
> > ejecutado desde VBA que no estoy seguro si es culpa de Excel o mia.

> > Intento explicar el problema: Uso la version española de Excel. Pongo los parametros para el filtro avanzado con la instruccion VBA :
> > Sheets("Parameters").Range("F2") = ">=" & Format(Sheets("Jour").Range("B1"), "mm/dd/yyyy").
> > Si uso el formato de fecha americano "mm/dd/yyyy" funciona bien el filtro en Excel 2007pero no en Excel 2003.
> > Por contra, si uso el formato europeo "dd/mm/yyyy" funciona bien en Excel 2003 pero no en Excel 2007.

> > Para la solucion simple pero evitando hacer el filtro a mano, puedo saber la version de Excel en la que se ejecuta la macro?.

> > Para la solución de verdad, alguna opción o alternativa para unificar el formato de las fechas?.
> > A mi no se me ocurre nada y arrastro este problema desde hace unos dias.
Respuesta Responder a este mensaje
#4 Héctor Miguel
19/05/2010 - 20:43 | Informe spam
hola, Valentín !

no encuentro la solucion. No veo la forma de usar una función con el filtro avanzado.
Lo que quiero es seleccionar las filas de una hoja de un dia, semana o mes, y moverlas a otra hoja.
No veo otra opcion que hacerlo por codigo y olvidarme del filtro avanzado...



esta parte de las (re)preguntas no la has contestado (?)
serviria para encontrar alguna formula que sea resuelta directamente por excel ;)

3) cual es la columna en la hoja "parameters" que se va a comparar con el criterio ?
(probablemente convendria usar una formula y que el mismo excel se encargue de la evaluacion de la fecha ?)



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