Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I'm using VB to autofilter a number of worksheets using a criteria entered in
a textbox. -------------------------------------------------------------------------------- Sub Filter_Box3() Dim ws As Worksheet Dim crit As String Dim agsheetname As String crit = Sheet1.Filtertext2.Value Application.ScreenUpdating = False For Each ws In Worksheets agsheetname = ws.Name If agsheetname < "Guide" Then ws.UsedRange.AutoFilter Field:=1, Criteria1:="<" & crit End If Next ws Application.ScreenUpdating = True End Sub -------------------------------------------------------------------------------- for some reason, when using < or the date has been flipped around when i check the autofilter settings on the worksheets, so that if crit = 01/02/2005, it gets changed to 02/01/2005. This does not happen when using = in the criteria. Even when i hard code a date into the function like: ------------------------------------------------------------------------------- ws.UsedRange.AutoFilter Field:=1, Criteria1:="<01/02/2005" -------------------------------------------------------------------------------- .... it still gets flipped around. Any ideas? El. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
ws.UsedRange.AutoFilter Field:=1, Criteria1:="<" & _
format(cdate("01/02/2005"),"mm/dd/yyyyy") I would bet you have the problem even with "=" if the month and day can be flipped and still form a good date. In VBA, you need to work with US formatted dates if you are going to work with strings, otherwise, work with date serial numbers. -- Regards, Tom Ogilvy "elsandalos" wrote in message ... I'm using VB to autofilter a number of worksheets using a criteria entered in a textbox. -------------------------------------------------------------------------- ------ Sub Filter_Box3() Dim ws As Worksheet Dim crit As String Dim agsheetname As String crit = Sheet1.Filtertext2.Value Application.ScreenUpdating = False For Each ws In Worksheets agsheetname = ws.Name If agsheetname < "Guide" Then ws.UsedRange.AutoFilter Field:=1, Criteria1:="<" & crit End If Next ws Application.ScreenUpdating = True End Sub -------------------------------------------------------------------------- ------ for some reason, when using < or the date has been flipped around when i check the autofilter settings on the worksheets, so that if crit = 01/02/2005, it gets changed to 02/01/2005. This does not happen when using = in the criteria. Even when i hard code a date into the function like: -------------------------------------------------------------------------- ----- ws.UsedRange.AutoFilter Field:=1, Criteria1:="<01/02/2005" -------------------------------------------------------------------------- ------ ... it still gets flipped around. Any ideas? El. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Cheers Tom.
Oddly i don't get the problem when using "=", even if the month and day can be flipped. I've just read around, and seen that people are using cdbl when feeding a date into the autofilter. I've got it fixed with that, and also using your method. still strikes me as odd though. Whats the difference between feeding autofilter a criteria through VB and doing it manually on the worksheet? Anyway - ta for the help :) El. "Tom Ogilvy" wrote: ws.UsedRange.AutoFilter Field:=1, Criteria1:="<" & _ format(cdate("01/02/2005"),"mm/dd/yyyyy") I would bet you have the problem even with "=" if the month and day can be flipped and still form a good date. In VBA, you need to work with US formatted dates if you are going to work with strings, otherwise, work with date serial numbers. -- Regards, Tom Ogilvy "elsandalos" wrote in message ... I'm using VB to autofilter a number of worksheets using a criteria entered in a textbox. -------------------------------------------------------------------------- ------ Sub Filter_Box3() Dim ws As Worksheet Dim crit As String Dim agsheetname As String crit = Sheet1.Filtertext2.Value Application.ScreenUpdating = False For Each ws In Worksheets agsheetname = ws.Name If agsheetname < "Guide" Then ws.UsedRange.AutoFilter Field:=1, Criteria1:="<" & crit End If Next ws Application.ScreenUpdating = True End Sub -------------------------------------------------------------------------- ------ for some reason, when using < or the date has been flipped around when i check the autofilter settings on the worksheets, so that if crit = 01/02/2005, it gets changed to 02/01/2005. This does not happen when using = in the criteria. Even when i hard code a date into the function like: -------------------------------------------------------------------------- ----- ws.UsedRange.AutoFilter Field:=1, Criteria1:="<01/02/2005" -------------------------------------------------------------------------- ------ ... it still gets flipped around. Any ideas? El. |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
cdbl used with a date string such as
cdbl("01/23/2005") won't work. so you must not be sending it a date string. anyway, the difference is that one is done with VBA and one is done with Excel. They are two different products and have different behaviors. -- Regards, Tom Ogilvy "elsandalos" wrote in message ... Cheers Tom. Oddly i don't get the problem when using "=", even if the month and day can be flipped. I've just read around, and seen that people are using cdbl when feeding a date into the autofilter. I've got it fixed with that, and also using your method. still strikes me as odd though. Whats the difference between feeding autofilter a criteria through VB and doing it manually on the worksheet? Anyway - ta for the help :) El. "Tom Ogilvy" wrote: ws.UsedRange.AutoFilter Field:=1, Criteria1:="<" & _ format(cdate("01/02/2005"),"mm/dd/yyyyy") I would bet you have the problem even with "=" if the month and day can be flipped and still form a good date. In VBA, you need to work with US formatted dates if you are going to work with strings, otherwise, work with date serial numbers. -- Regards, Tom Ogilvy "elsandalos" wrote in message ... I'm using VB to autofilter a number of worksheets using a criteria entered in a textbox. -------------------------------------------------------------------------- ------ Sub Filter_Box3() Dim ws As Worksheet Dim crit As String Dim agsheetname As String crit = Sheet1.Filtertext2.Value Application.ScreenUpdating = False For Each ws In Worksheets agsheetname = ws.Name If agsheetname < "Guide" Then ws.UsedRange.AutoFilter Field:=1, Criteria1:="<" & crit End If Next ws Application.ScreenUpdating = True End Sub -------------------------------------------------------------------------- ------ for some reason, when using < or the date has been flipped around when i check the autofilter settings on the worksheets, so that if crit = 01/02/2005, it gets changed to 02/01/2005. This does not happen when using = in the criteria. Even when i hard code a date into the function like: -------------------------------------------------------------------------- ----- ws.UsedRange.AutoFilter Field:=1, Criteria1:="<01/02/2005" -------------------------------------------------------------------------- ------ ... it still gets flipped around. Any ideas? El. |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
yeah, sorry - i changed the variable from a string to date.
"Tom Ogilvy" wrote: cdbl used with a date string such as cdbl("01/23/2005") won't work. so you must not be sending it a date string. anyway, the difference is that one is done with VBA and one is done with Excel. They are two different products and have different behaviors. -- Regards, Tom Ogilvy "elsandalos" wrote in message ... Cheers Tom. Oddly i don't get the problem when using "=", even if the month and day can be flipped. I've just read around, and seen that people are using cdbl when feeding a date into the autofilter. I've got it fixed with that, and also using your method. still strikes me as odd though. Whats the difference between feeding autofilter a criteria through VB and doing it manually on the worksheet? Anyway - ta for the help :) El. "Tom Ogilvy" wrote: ws.UsedRange.AutoFilter Field:=1, Criteria1:="<" & _ format(cdate("01/02/2005"),"mm/dd/yyyyy") I would bet you have the problem even with "=" if the month and day can be flipped and still form a good date. In VBA, you need to work with US formatted dates if you are going to work with strings, otherwise, work with date serial numbers. -- Regards, Tom Ogilvy "elsandalos" wrote in message ... I'm using VB to autofilter a number of worksheets using a criteria entered in a textbox. -------------------------------------------------------------------------- ------ Sub Filter_Box3() Dim ws As Worksheet Dim crit As String Dim agsheetname As String crit = Sheet1.Filtertext2.Value Application.ScreenUpdating = False For Each ws In Worksheets agsheetname = ws.Name If agsheetname < "Guide" Then ws.UsedRange.AutoFilter Field:=1, Criteria1:="<" & crit End If Next ws Application.ScreenUpdating = True End Sub -------------------------------------------------------------------------- ------ for some reason, when using < or the date has been flipped around when i check the autofilter settings on the worksheets, so that if crit = 01/02/2005, it gets changed to 02/01/2005. This does not happen when using = in the criteria. Even when i hard code a date into the function like: -------------------------------------------------------------------------- ----- ws.UsedRange.AutoFilter Field:=1, Criteria1:="<01/02/2005" -------------------------------------------------------------------------- ------ ... it still gets flipped around. Any ideas? El. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Why I can't autofilter date (01-Jul-06 to 31-Jul-06) in Exel? | Excel Discussion (Misc queries) | |||
frustrated with VBA select/activate and screen flips | Excel Discussion (Misc queries) | |||
F9 flips formulas between zero and correct value | Excel Discussion (Misc queries) | |||
work sheet view flips horizontally | Excel Discussion (Misc queries) | |||
Multiple coin flips in a single cell | Excel Worksheet Functions |