Principales respuestas
Macros y formatos de fecha en Excel 2007

Pregunta
-
Utilizo filtros avanzados para extraer datos de una contabilidad "xxxxxx.mdb". Las consultas funcionan perfectamente. Filtro los datos en función de fechas. Pues bien, si efectúo todos los pasos( filtro avanzado, criterios, copiar en otro lugar...) pinchando en la cinta de Excel 2007, puedo utilizar en los criterios el formato de fecha español (dd-mm-aaaa); en cambio si grabo todos esos pasos en una macro, el formato de fecha ha de ser anglosajón(mm-dd-aaaa). ¿A qué se debe ese comportamiento? ¿Cómo corregirlo?
De modo similar, esa contabilidad me da datos en la siguiente forma --123,45Eur --. Si utilizo Ctrl+L y reemplazo 'Eur' por nada, lo hace y el número es interpretado por Excel como tal. En cambio, si grabo una macro con esas acciones, el número es interpretado como texto, pero no como número. ¿Qué hace o deja de hacer la macro con respecto a la utilización de las teclas?
Jose
Respuestas
-
Hola Jose,
VBA es un lenguaje USA-centrico y, salvo algunos casos aislados, requiere la utilizacion del formato de fecha, todo tipo de separadores y funciones que se usan en el sistema estadounidense. No se puede corregir, pero...
1) al introducir los valores en celdas desde VBA, Excel automaticamente traducira los formatos correctamente
2) algunas propiedades del objeto rango permiten las formulas y/o valores en formato local, p.ej. Range("A1").FormulaLocal="=SUMA(B1;C3;D3)"
3) en VBA, las fechas tambien se pueden devolver mediante la funcion DateSerial, p.ej. DateSerial(2007, 12, 31), lo cual evita el riesgo de confusion
La respuesta sera mas concreta si expones mas detalle o ejemplo de una situacion concreta.
- Marcado como respuesta Ismael Borche martes, 5 de abril de 2011 21:33
Todas las respuestas
-
Hola Jose,
VBA es un lenguaje USA-centrico y, salvo algunos casos aislados, requiere la utilizacion del formato de fecha, todo tipo de separadores y funciones que se usan en el sistema estadounidense. No se puede corregir, pero...
1) al introducir los valores en celdas desde VBA, Excel automaticamente traducira los formatos correctamente
2) algunas propiedades del objeto rango permiten las formulas y/o valores en formato local, p.ej. Range("A1").FormulaLocal="=SUMA(B1;C3;D3)"
3) en VBA, las fechas tambien se pueden devolver mediante la funcion DateSerial, p.ej. DateSerial(2007, 12, 31), lo cual evita el riesgo de confusion
La respuesta sera mas concreta si expones mas detalle o ejemplo de una situacion concreta.
- Marcado como respuesta Ismael Borche martes, 5 de abril de 2011 21:33
-
Si esta extracción de datos (de la Base_de_Datos:A2:H1000000) la hago utilizando Datos >Filtro Avanzado, no hay ningún problema con ese formato de fecha: me devuelve los datos de ese proveedor durante el año 2006.
En cambio, si grabo esas pulsaciones repetitivas en una macro y la ejecuto con ese formato de fecha, no obtengo ningún dato. Si en lugar de poner Fecha >31/12/2005, pongo Fecha >12/31/2005, todo funciona.
Les adjunto la macro y los criterios. Se puede hacer perfectamente la prueba con cualquier lista que incluya fechas. La versión Beta de Excel 2007 sí lo hacía bien.
Un saludo y muchas gracias por su tiempo y su respuesta.
Jose
Sub Extraer_Baseges()
'
' Extraer_Baseges Macro
''
Range("A2:H1000000").Select
Range("A2:H1000000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("Criteria"), CopyToRange:=Range("Extract"), Unique:=False
ActiveWindow.LargeScroll ToRight:=1
ActiveWindow.SmallScroll ToRight:=6
Range("S2").Select
ActiveWindow.SmallScroll ToRight:=1
End SubCriterios
CódigoCuentaContabilidad Fecha Fecha CLINASIEN5 CLINASIEN6 CLINASIEN7 CLINASIEN8 CLINASIEN11
400000355 >31/12/2005 <01/01/2007 -
Tengo problemas con el windows vista, combin{e dos archivo uno de excel y otro de word, los datos se transcriben en excel pero por modeo de combinacion se pasan a un formato en word pero las fechas y la separacion de miles me cambia el formato. Ej: en Excel la fecha le coloco el formato 12-Abr-2008 y arroja 12/04/08, en el numeros le coloco el formato con separadores de miles y en vez de salir $15.350.850 sale es 15350850 sin la separacion.. Te agradezco y me ayudes...