ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   find the first cell in a list of dates for January (https://www.excelbanter.com/excel-programming/276868-re-find-first-cell-list-dates-january.html)

Tom Ogilvy

find the first cell in a list of dates for January
 
there isn't any magic way to know the date contained in the cell.

You could use a dummy column with a formula

=if(Year(a1)<Year("a2"),na(),"")

copy this down your dummy column. This marks the first date in each new
year.

then
set rng = Columns(4).SpecialCells(xlFormulas,xlErrorvalues)

--
Regards,
Tom Ogilvy


"Larry Levinson" wrote in message
...
In column A I have a list of dates, arranged in descending order, most
recent to oldest. I need to know where one year starts and another
ends to do a year_to_date calculation. I can test each cell for
datevalue being more than Jan. 1, but I would like to save cycles by
going to the end of January first and THEN comparing the datevalue of
the active cell ... also, I can not be sure that I have an entry for
each CALENDAR day ... (so, no, I can't just search for Jan. 31. By the
same token, I can't just search for Jan. 1)

Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)




Larry Levinson

find the first cell in a list of dates for January
 
what about toggling autofilter on and off, ala

Dim year_start As Date
year_start = DateValue("1/1/" & Year(Date))

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="year_start"
' VisibleDropDown:=False


my current problem is getting the criteria to be `less than'
year_start instead of just equal to year_start.

(and any insight you might have in toggling off the autofilter would
be good too ... ) thanks.





"Tom Ogilvy" wrote:

there isn't any magic way to know the date contained in the cell.

You could use a dummy column with a formula

=if(Year(a1)<Year("a2"),na(),"")

copy this down your dummy column. This marks the first date in each new
year.

then
set rng = Columns(4).SpecialCells(xlFormulas,xlErrorvalues)


Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)

Tom Ogilvy

find the first cell in a list of dates for January
 
ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="<" & clng(year_start)
' VisibleDropDown:=False
or

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="<" & year_start

' VisibleDropDown:=False



"Larry Levinson" wrote in message
...
what about toggling autofilter on and off, ala

Dim year_start As Date
year_start = DateValue("1/1/" & Year(Date))

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="year_start"
' VisibleDropDown:=False


my current problem is getting the criteria to be `less than'
year_start instead of just equal to year_start.

(and any insight you might have in toggling off the autofilter would
be good too ... ) thanks.





"Tom Ogilvy" wrote:

there isn't any magic way to know the date contained in the cell.

You could use a dummy column with a formula

=if(Year(a1)<Year("a2"),na(),"")

copy this down your dummy column. This marks the first date in each new
year.

then
set rng = Columns(4).SpecialCells(xlFormulas,xlErrorvalues)


Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)




Larry Levinson

find the first cell in a list of dates for January
 
You are a star ... but, um, turning it off?



"Tom Ogilvy" wrote:

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="<" & clng(year_start)
' VisibleDropDown:=False
or

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="<" & year_start

' VisibleDropDown:=False



"Larry Levinson" wrote in message
.. .
what about toggling autofilter on and off, ala

Dim year_start As Date
year_start = DateValue("1/1/" & Year(Date))

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="year_start"
' VisibleDropDown:=False


my current problem is getting the criteria to be `less than'
year_start instead of just equal to year_start.

(and any insight you might have in toggling off the autofilter would
be good too ... ) thanks.





"Tom Ogilvy" wrote:

there isn't any magic way to know the date contained in the cell.

You could use a dummy column with a formula

=if(Year(a1)<Year("a2"),na(),"")

copy this down your dummy column. This marks the first date in each new
year.

then
set rng = Columns(4).SpecialCells(xlFormulas,xlErrorvalues)


Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)



Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)

Larry Levinson

find the first cell in a list of dates for January
 
sigh ... two more problems and then I promise to go away ...


i want to move to the first row in the resulting list, just like arrow
down would do, but the offset only moves me to row 2 instead of the
beginning of the filtered list .. and I don't see how to toggle the
autofilter off ...


"Tom Ogilvy" wrote:

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="<" & clng(year_start)
' VisibleDropDown:=False
or

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="<" & year_start

' VisibleDropDown:=False



"Larry Levinson" wrote in message
.. .
what about toggling autofilter on and off, ala

Dim year_start As Date
year_start = DateValue("1/1/" & Year(Date))

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="year_start"
' VisibleDropDown:=False


my current problem is getting the criteria to be `less than'
year_start instead of just equal to year_start.

(and any insight you might have in toggling off the autofilter would
be good too ... ) thanks.





"Tom Ogilvy" wrote:

there isn't any magic way to know the date contained in the cell.

You could use a dummy column with a formula

=if(Year(a1)<Year("a2"),na(),"")

copy this down your dummy column. This marks the first date in each new
year.

then
set rng = Columns(4).SpecialCells(xlFormulas,xlErrorvalues)


Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)



Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)

Larry Levinson

find the first cell in a list of dates for January
 
TOGGLE OFF
Selection.AutoFilter

but, `sendkeys'?


Larry Levinson wrote:

sigh ... two more problems and then I promise to go away ...


i want to move to the first row in the resulting list, just like arrow
down would do, but the offset only moves me to row 2 instead of the
beginning of the filtered list .. and I don't see how to toggle the
autofilter off ...


"Tom Ogilvy" wrote:

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="<" & clng(year_start)
' VisibleDropDown:=False
or

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="<" & year_start

' VisibleDropDown:=False



"Larry Levinson" wrote in message
. ..
what about toggling autofilter on and off, ala

Dim year_start As Date
year_start = DateValue("1/1/" & Year(Date))

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="year_start"
' VisibleDropDown:=False


my current problem is getting the criteria to be `less than'
year_start instead of just equal to year_start.

(and any insight you might have in toggling off the autofilter would
be good too ... ) thanks.





"Tom Ogilvy" wrote:

there isn't any magic way to know the date contained in the cell.

You could use a dummy column with a formula

=if(Year(a1)<Year("a2"),na(),"")

copy this down your dummy column. This marks the first date in each new
year.

then
set rng = Columns(4).SpecialCells(xlFormulas,xlErrorvalues)

Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)



Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)


Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)

Tom Ogilvy

find the first cell in a list of dates for January
 
Dim rng as Range, rng1 as Range
set rng = Activesheet.Autofilter.Range.columns(1).Cells
set rng = rng.offset(1,0).Resize(rng.rows.count-1)
On error resume next
set rng1 = rng.Specialcells(xlVisible)
On Error goto 0
if not rng1 is nothing then
rng1(1).Select
else
msgbox "No rows visible"
End if

--
Regards,
Tom Ogilvy



"Larry Levinson" wrote in message
...
sigh ... two more problems and then I promise to go away ...


i want to move to the first row in the resulting list, just like arrow
down would do, but the offset only moves me to row 2 instead of the
beginning of the filtered list .. and I don't see how to toggle the
autofilter off ...


"Tom Ogilvy" wrote:

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="<" & clng(year_start)
' VisibleDropDown:=False
or

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="<" & year_start

' VisibleDropDown:=False



"Larry Levinson" wrote in message
.. .
what about toggling autofilter on and off, ala

Dim year_start As Date
year_start = DateValue("1/1/" & Year(Date))

ActiveSheet.Range("A1").AutoFilter _
field:=1, _
Criteria1:="year_start"
' VisibleDropDown:=False


my current problem is getting the criteria to be `less than'
year_start instead of just equal to year_start.

(and any insight you might have in toggling off the autofilter would
be good too ... ) thanks.





"Tom Ogilvy" wrote:

there isn't any magic way to know the date contained in the cell.

You could use a dummy column with a formula

=if(Year(a1)<Year("a2"),na(),"")

copy this down your dummy column. This marks the first date in each

new
year.

then
set rng = Columns(4).SpecialCells(xlFormulas,xlErrorvalues)

Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)



Larry Levinson
Talking up to the vocal ...
LLevinson*Bloomberg.net
(remove the star etc ....)





All times are GMT +1. The time now is 06:50 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com