none
No hace filtro por codigo vba RRS feed

  • Pregunta

  • Buenas noches señores... en esta ocasion tengo un problema que me trae de cabeza, ya que he grabado una macro con los pasos para filtrar un rango de datos por fecha.... el codigo lo he tomado exactamente como se ha grabado y lo he colocado en un procedimiento que he hecho, pero lastimosamente, ahi no me funciona.... no se que pudiera ser y por eso acudo a ustedes para que me den una idea...

    El codigo es el siguiente: 

    Sub FiltrarPorFecha(ByVal Hoja As Worksheet)
    'Filtrar los datos por fechas
        Dim FechaIni, FechaFin As String
        Dim UltimaFila As Integer
        
        FechaIni = Trim(Worksheets("Analisis").Range("FechaIni").Value)
        FechaFin = Trim(Worksheets("Analisis").Range("FechaFin").Value)
        
        'UltimaFila = Hoja.Cells(600, 2).End(xlUp).Row
        UltimaFila = WorksheetFunction.CountA([B1:B600]) + 2 'Se suman 2 por las dos celdas superiores que tambien estan ocupadas
        
        Range("B4:H" & UltimaFila).Select
        
        'Range("D4").Select
        
        Selection.AutoFilter
        ActiveSheet.Range("$B$4:$H$" & UltimaFila).AutoFilter Field:=3, Criteria1:=">=" & FechaIni, _
                       Operator:=xlAnd, Criteria2:="<=" & FechaFin
        'Selection.AutoFilter Field:=3, Criteria1:=">=" & FechaIni,
         
            
        'Selection.AutoFilter
        'ActiveSheet.Range("$B$4:$H$47").AutoFilter Field:=3, Criteria1:= _
         '   ">=05/06/2013", Operator:=xlAnd, Criteria2:="<=05/06/2013"
            
        Hoja.Range("B" & UltimaFila + 1).Select
                                                                                                                
    End Sub

    He cambiado las variables FechaIni y FechaFin para que sean de tipo Date... pero nada.... si se dan cuanta, hay una linea que tengo comentada porque he hecho pruebas colocando la fecha a "manita", tal cual lo tenia el codigo grabado......

    Agradezco mucho sus comentarios

    viernes, 7 de junio de 2013 0:36

Respuestas

  • He encontrado la solucion al problema planteado y en verdad que fue un dolor de cabeza....

    El problema radica en que en Vba, la fecha la toma al estilo americano, es decir "mm/dd/yyyy", y mis variables FechaIni y FechaFin estaban en formato "dd/mm/yyyy" por eso no me filtraba nada.... cabe decir que si este filtro lo hacia en Excel, no habia problema, lo tomaba con el formato que yo lo tenia.... no asi en Vba..... 

    Gracias por darme cabida en este foro y hasta la proxima.

    • Marcado como respuesta wichortiz viernes, 7 de junio de 2013 4:31
    viernes, 7 de junio de 2013 4:31