Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The following is a modified code from this newsgriou
Sub MonthRange() Dim iStart As Long Dim iEnd As Long Dim rng As Range Dim i As Long ActiveWorkbook.Names.Add Name:="DlyAll", RefersToR1C1:= _ "=OFFSET(Daily!R1C1,1,0,COUNTA(Daily!C1)-1)" With Sheets("Daily") For i = 1 To 12 iStart = _ .Evaluate("=MIN(IF(MONTH(DlyAll)=" & i & ",ROW(DlyAll)))") iEnd = _ .Evaluate("=MAX(IF(MONTH(DlyAll)=" & i & ",ROW(DlyAll)))") If iEnd < 0 Then Set rng = Sheets("Daily").Range("A" & iStart & ":A" & iEnd) rng.Name = "Rng" & Format(DateValue("01-" & i), "mmm") End If Next i End With if I want to get the range named based on month and year from data of more than one year how i can modify this code? so the Range name will look like RngJan06 for January 2006 Data and RngJan2007 for 2007 Data? thanks Abdul |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() rng.Name = "Rng" & Format(DateValue("01-" & i), "mmmyy") -- HTH Bob Phillips (replace somewhere in email address with gmail if mailing direct) "Abdul" wrote in message oups.com... The following is a modified code from this newsgriou Sub MonthRange() Dim iStart As Long Dim iEnd As Long Dim rng As Range Dim i As Long ActiveWorkbook.Names.Add Name:="DlyAll", RefersToR1C1:= _ "=OFFSET(Daily!R1C1,1,0,COUNTA(Daily!C1)-1)" With Sheets("Daily") For i = 1 To 12 iStart = _ .Evaluate("=MIN(IF(MONTH(DlyAll)=" & i & ",ROW(DlyAll)))") iEnd = _ .Evaluate("=MAX(IF(MONTH(DlyAll)=" & i & ",ROW(DlyAll)))") If iEnd < 0 Then Set rng = Sheets("Daily").Range("A" & iStart & ":A" & iEnd) rng.Name = "Rng" & Format(DateValue("01-" & i), "mmm") End If Next i End With if I want to get the range named based on month and year from data of more than one year how i can modify this code? so the Range name will look like RngJan06 for January 2006 Data and RngJan2007 for 2007 Data? thanks Abdul |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks Bob,
It will just rename it How I can have two range names for two different years? for eg: if have data starting from 1/1/2005 to 13/1/2007 Then I want to get range name like RngJan05, RngFeb05....RngJan06, RngFeb06,...RngJan07 So i want to evaluate both month and year. Number of years will be based on year from the smallest date and year from the highest date from the whole data Thanks Bob Phillips wrote: rng.Name = "Rng" & Format(DateValue("01-" & i), "mmmyy") -- HTH Bob Phillips (replace somewhere in email address with gmail if mailing direct) "Abdul" wrote in message oups.com... The following is a modified code from this newsgriou Sub MonthRange() Dim iStart As Long Dim iEnd As Long Dim rng As Range Dim i As Long ActiveWorkbook.Names.Add Name:="DlyAll", RefersToR1C1:= _ "=OFFSET(Daily!R1C1,1,0,COUNTA(Daily!C1)-1)" With Sheets("Daily") For i = 1 To 12 iStart = _ .Evaluate("=MIN(IF(MONTH(DlyAll)=" & i & ",ROW(DlyAll)))") iEnd = _ .Evaluate("=MAX(IF(MONTH(DlyAll)=" & i & ",ROW(DlyAll)))") If iEnd < 0 Then Set rng = Sheets("Daily").Range("A" & iStart & ":A" & iEnd) rng.Name = "Rng" & Format(DateValue("01-" & i), "mmm") End If Next i End With if I want to get the range named based on month and year from data of more than one year how i can modify this code? so the Range name will look like RngJan06 for January 2006 Data and RngJan2007 for 2007 Data? thanks Abdul |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Sub MonthRange()
Dim iStart As Long Dim iEnd As Long Dim rng As Range Dim i As Long Dim j As Long ActiveWorkbook.Names.Add Name:="DlyAll", RefersToR1C1:= _ "=OFFSET(Daily!R1C1,1,0,COUNTA(Daily!C1)-1)" With Sheets("Daily") For j = .Evaluate("MIN(YEAR(DlyAll))") To _ .Evaluate("MAX(YEAR(DlyAll))") For i = 1 To 12 iStart = _ .Evaluate("=MIN(IF((MONTH(DlyAll)=" & i & ")*" & _ "(YEAR(DlyAll)=" & j & "),ROW(DlyAll)))") iEnd = _ .Evaluate("=MAX(IF((MONTH(DlyAll)=" & i & ")*" & _ "(YEAR(DlyAll)=" & j & "),ROW(DlyAll)))") If iEnd < 0 Then Set rng = Sheets("Daily").Range("A" & iStart & _ ":A" & iEnd) rng.Name = "Rng" & Format(DateValue( _ "01-" & i & "-" & j), "mmmyy") End If Next i Next j End With End Sub -- HTH Bob Phillips (replace somewhere in email address with gmail if mailing direct) "Abdul" wrote in message oups.com... Thanks Bob, It will just rename it How I can have two range names for two different years? for eg: if have data starting from 1/1/2005 to 13/1/2007 Then I want to get range name like RngJan05, RngFeb05....RngJan06, RngFeb06,...RngJan07 So i want to evaluate both month and year. Number of years will be based on year from the smallest date and year from the highest date from the whole data Thanks Bob Phillips wrote: rng.Name = "Rng" & Format(DateValue("01-" & i), "mmmyy") -- HTH Bob Phillips (replace somewhere in email address with gmail if mailing direct) "Abdul" wrote in message oups.com... The following is a modified code from this newsgriou Sub MonthRange() Dim iStart As Long Dim iEnd As Long Dim rng As Range Dim i As Long ActiveWorkbook.Names.Add Name:="DlyAll", RefersToR1C1:= _ "=OFFSET(Daily!R1C1,1,0,COUNTA(Daily!C1)-1)" With Sheets("Daily") For i = 1 To 12 iStart = _ .Evaluate("=MIN(IF(MONTH(DlyAll)=" & i & ",ROW(DlyAll)))") iEnd = _ .Evaluate("=MAX(IF(MONTH(DlyAll)=" & i & ",ROW(DlyAll)))") If iEnd < 0 Then Set rng = Sheets("Daily").Range("A" & iStart & ":A" & iEnd) rng.Name = "Rng" & Format(DateValue("01-" & i), "mmm") End If Next i End With if I want to get the range named based on month and year from data of more than one year how i can modify this code? so the Range name will look like RngJan06 for January 2006 Data and RngJan2007 for 2007 Data? thanks Abdul |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks Bob!
It worked great! Abdul |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
How do I enter formula sum(range+range)*0.15 sumif(range=3) | Excel Discussion (Misc queries) | |||
Excel Addin:Setting the range to the Excel.Range object range prop | Excel Worksheet Functions | |||
Range Question / error 1004: method Range of object Worksheet has failed | Excel Programming | |||
Range.Find returns cell outside of range when range set to single cell | Excel Programming | |||
how to? set my range= my UDF argument (range vs. value in range) [advanced?] | Excel Programming |