# Problemas con criterio de busqueda en un filtro



## Osasa54 (Jun 6, 2003)

Hola, tengo una macro en la que se hace un filtrado de una columna con un criterio >= que una fecha. En VBA me genera el siguiente código:

    Selection.AutoFilter Field:=2, Criteria1:=">=18-may-2003", Operator:= _
        xlAnd

La cuestión es que quiero meter en una variable el citerio de busqueda de modo que me quedara así:

dim fecha as date
fecha = Sheets("datos").Cells(12, 14).Value

    Selection.AutoFilter Field:=2, Criteria1:=fecha, Operator:= _
        xlAnd


Pero el problema es que no me deja añadir >= a esa variable, con lo que en vez de filtarme >= 18-may-2003  me filtra solamente las iguales a esta fecha.

Es posible de algún modo añadirle a esta varible fecha el >=?

Muchas gracias.

Oscar


----------



## Juan Pablo González (Jun 6, 2003)

Esto depronto ? aunque trabajando con fechas a veces hay problemas.

Selection.AutoFilter Field:=2, Criteria1:=">=" & fecha


----------



## Osasa54 (Jun 7, 2003)

Bueno, en principio me funciona en cuanto a que ya no me da error, pero al ejecutar la macro no me hace caso, es decir después de ejecutarla me filtra de tal modo que no encuentra resultados. Entonces voy a la hoja y elijo personalizar el filtro (para ver que valores a metido), y encuentro que las fechas que ha introducido son las correctas, pero es como si no existieran celdas que contuvieran esas fechas. Lo curiososo es que si al meterme en personalizar el filtro, cuando veo que ha metido las fechas correctas, y sin tocar nada le doy directamente a aceptar, esta vez si saca los resultados.
¿curioso no?, a esto te referias con que las fechas a veces dan problemas?


----------



## Juan Pablo González (Jun 7, 2003)

Si Oscar, a eso es a lo que me refiero.  Excel todavía tiene muchos problemas para la gente que está por fuera de Estados Unidos, "International Issues" como se le conoce a este "detallito".

Pero bueno, hay una solución, afortunadamente !.  En el siguiente macro, puse la fecha de mi criterio en D2, y ejecuté paso a paso (Con F8) el macro, para ver como funcionaba cada uno de los Autofiltros.

<font face=Courier New>
<SPAN style="color:#00007F">Sub</SPAN> Test()
    <SPAN style="color:#00007F">Dim</SPAN> fecha <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Date</SPAN>
    
    fecha = Range("D2").Value
    
    <SPAN style="color:#007F00">'Apagar los filtros</SPAN>
    
    <SPAN style="color:#007F00">'Con fecha normal</SPAN>
    Selection.AutoFilter 2, ">=" & fecha
    Selection.AutoFilter
    
    <SPAN style="color:#007F00">'Con número de fecha</SPAN>
    Selection.AutoFilter 2, ">=" & <SPAN style="color:#00007F">CLng</SPAN>(fecha)
    Selection.AutoFilter
    
    <SPAN style="color:#007F00">'Con formato de fecha de US</SPAN>
    Selection.AutoFilter 2, ">=" & Format(fecha, "mm/dd/yyyy")
    Selection.AutoFilter
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
</FONT>

El primero no funciona, por lo menos en mi sistema (Y creo que en el tuyo tampoco) porque la fecha aparece con formato dia-mes-año, y el Autofiltro, en VBA, utiliza fechas en formato US, es decir, mes-día-año.  Los dos siguientes si funcionan, convertir la fecha al número que representa O pasar la fecha en formato US.

Ojalá funcione esto...


----------



## Osasa54 (Jun 7, 2003)

Tenias razón me ha venido perfecto. 

¿Hay algo que no sepas?


Muchas gracias


----------

