Question

When passing a date from datepicker to sort an excel table, somewhere the format is getting confused and swapping from dd/mm/yyyy to mm/dd/yyyy

I have checked my regional settings and they are set to dd/mm/yyy

Sub sortFuel()

With UserForm1
    With .dp_StartDate
        startDate = Format(.Value, "dd/mm/yyyy")
    End With
    With .dp_EndDate
        endDate = Format(.Value, "dd/mm/yyyy")
    End With
End With

MsgBox startDate
MsgBox endDate

With ws
    .ListObjects("Table_DFDBMain_FuelTrans4").Range.AutoFilter Field:= _
    3, Criteria1:=">=" & Format(startDate, "dd/mm/yyyy"), Operator:=xlAnd, Criteria2:="<=" & Format(endDate, "dd/mm/yyyy")
End With

End Sub

The columns in my table are already sorted in dd/mm/yyyy, yet if i select 7th May 2012, it comes out 5th July, 2012. NOTE: it only flips if the day column is less than 12. If for example i select 24th June for start date, it will stay 24th June.

Any help will be greatly appreciated!

Était-ce utile?

La solution

Try this

Sub sortFuel()
    Dim D1 As Long, D2 As Long

    With UserForm1
        With .dp_StartDate
            startDate = Format(.Value, "dd/mm/yyyy")
        End With
        With .dp_EndDate
            endDate = Format(.Value, "dd/mm/yyyy")
        End With
    End With

    D1 = Val(Format(startDate, "0"))
    D2 = Val(Format(endDate, "0"))

    With ws
        .ListObjects("Table_DFDBMain_FuelTrans4").Range.AutoFilter Field:= _
        3, Criteria1:=">=" & D1, Operator:=xlAnd, Criteria2:="<=" & D2
    End With
End Sub
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top