none
Macros y formatos de fecha en Excel 2007 RRS feed

  • 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

    jueves, 19 de julio de 2007 22:51

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
    viernes, 20 de julio de 2007 15:34

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
    viernes, 20 de julio de 2007 15:34
  • 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 Sub

     

    Criterios

    CódigoCuentaContabilidad                  Fecha                    Fecha         CLINASIEN5 CLINASIEN6 CLINASIEN7 CLINASIEN8 CLINASIEN11
      400000355                                           >31/12/2005        <01/01/2007    

     

    martes, 24 de julio de 2007 19:15
  • 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...
    martes, 15 de abril de 2008 21:51