ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Name Range (https://www.excelbanter.com/excel-programming/381123-name-range.html)

Abdul[_2_]

Name Range
 
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


Bob Phillips

Name Range
 

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




Abdul[_2_]

Name Range
 
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



Bob Phillips

Name Range
 
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





Abdul[_2_]

Name Range
 
Thanks Bob!

It worked great!

Abdul



All times are GMT +1. The time now is 10:30 AM.

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