Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
CLR CLR is offline
external usenet poster
 
Posts: 1,998
Default RangeSize set by macro

Hi All.......

If someone would be so kind.....I am in need of a macro that will look to
A7, and then depending on how many consecutively populated cells are below
it, create RangeName "Data1" of that size. Then do the same thing for
RangeName "Data2" starting at cell B7. Then, combine the two as RangeName
"Data3" from A7 whatever becomes the bottom end cell of "Data2"........when
I do this by recording, it just hard-codes the cells and does not allow if
the range size changes.

Assuming Data in A7:B14, then

RangeName "Data1" would be assigned to A7:A14
RangeName "Data2" would be assigned to B7:B14
RangeName "Data3" would be assigned to A7:B14

TIA for any guidance.....
Vaya con Dios,
Chuck, CABGx3

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default RangeSize set by macro

set rng = Range(Range("A7"),Range("A7").End(xldown))
rng.name = "Data1"
rng.offset(0,1).name = "Data2"
rng.Resize(,2).name = "Data3"

I assume A and B will always end on the same row.

If that is not the case then:

set rng1 = Range(Range("A7"),Range("A7").End(xldown))
set rng2 = Range(Range("B7"),Range("B7").End(xldown))
set rng3 = Range(rng1, rng2)

rng1.Name = "Data1"
rng2.Name = "Data2"
rng3.Name = "Date3"

--
Regards,
Tom Ogilvy

"CLR" wrote in message
...
Hi All.......

If someone would be so kind.....I am in need of a macro that will look to
A7, and then depending on how many consecutively populated cells are below
it, create RangeName "Data1" of that size. Then do the same thing for
RangeName "Data2" starting at cell B7. Then, combine the two as

RangeName
"Data3" from A7 whatever becomes the bottom end cell of

"Data2"........when
I do this by recording, it just hard-codes the cells and does not allow if
the range size changes.

Assuming Data in A7:B14, then

RangeName "Data1" would be assigned to A7:A14
RangeName "Data2" would be assigned to B7:B14
RangeName "Data3" would be assigned to A7:B14

TIA for any guidance.....
Vaya con Dios,
Chuck, CABGx3



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,624
Default RangeSize set by macro

You don't need programming, of course. It may be more efficient to use
dynamic ranges:

http://cpearson.com/excel/named.htm#Dynamic

But you can use something like:

Range(Cells(7, 1), Cells(Rows.Count, 1).End(xlUp)).Name = "Data1"
Range(Cells(7, 2), Cells(Rows.Count, 2).End(xlUp)).Name = "Data2"
Cells(7, 1).Resize(Range("Data2").Rows.Count,2).Name = "Data3"

or a bit more efficiently

Range(Cells(7, 1), Cells(Rows.Count, 1).End(xlUp)).Name = "Data1"
With Range(Cells(7, 2), Cells(Rows.Count, 2).End(xlUp))
.Name = "Data2"
Cells(7, 1).Resize(.Rows.Count,2).Name = "Data3"
End With




In article ,
CLR wrote:

Hi All.......

If someone would be so kind.....I am in need of a macro that will look to
A7, and then depending on how many consecutively populated cells are below
it, create RangeName "Data1" of that size. Then do the same thing for
RangeName "Data2" starting at cell B7. Then, combine the two as RangeName
"Data3" from A7 whatever becomes the bottom end cell of "Data2"........when
I do this by recording, it just hard-codes the cells and does not allow if
the range size changes.

Assuming Data in A7:B14, then

RangeName "Data1" would be assigned to A7:A14
RangeName "Data2" would be assigned to B7:B14
RangeName "Data3" would be assigned to A7:B14

TIA for any guidance.....
Vaya con Dios,
Chuck, CABGx3

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 694
Default RangeSize set by macro

If there is no empty cell within the data in column A, you coan define your
Named Ranges (menu Insert Name Define) as:
Assuming there are 3 non-empty cells in A1:A6 (if 5, then change the '3' in
into a 5 in the formulas)
Data1
=OFFSET($A$7,0,0,COUNTA($A:$A)-3,1)
Data2
=OFFSET($A$7,0,1,COUNTA($A:$A)-3,1)
Data3
=OFFSET($A$7,0,0,COUNTA($A:$A)-3,2)

These named ranges are dynamic, therefore update automatically when you add
or delete data.

Regards,
Sebastien
"CLR" wrote:

Hi All.......

If someone would be so kind.....I am in need of a macro that will look to
A7, and then depending on how many consecutively populated cells are below
it, create RangeName "Data1" of that size. Then do the same thing for
RangeName "Data2" starting at cell B7. Then, combine the two as RangeName
"Data3" from A7 whatever becomes the bottom end cell of "Data2"........when
I do this by recording, it just hard-codes the cells and does not allow if
the range size changes.

Assuming Data in A7:B14, then

RangeName "Data1" would be assigned to A7:A14
RangeName "Data2" would be assigned to B7:B14
RangeName "Data3" would be assigned to A7:B14

TIA for any guidance.....
Vaya con Dios,
Chuck, CABGx3

  #5   Report Post  
Posted to microsoft.public.excel.programming
CLR CLR is offline
external usenet poster
 
Posts: 1,998
Default RangeSize set by macro

Thank you very much Tom......

Your code is exactly what I was looking for in this instance, and even more
to "grow on".

Vaya con Dios,
Chuck, CABGx3



"Tom Ogilvy" wrote:

set rng = Range(Range("A7"),Range("A7").End(xldown))
rng.name = "Data1"
rng.offset(0,1).name = "Data2"
rng.Resize(,2).name = "Data3"

I assume A and B will always end on the same row.

If that is not the case then:

set rng1 = Range(Range("A7"),Range("A7").End(xldown))
set rng2 = Range(Range("B7"),Range("B7").End(xldown))
set rng3 = Range(rng1, rng2)

rng1.Name = "Data1"
rng2.Name = "Data2"
rng3.Name = "Date3"

--
Regards,
Tom Ogilvy

"CLR" wrote in message
...
Hi All.......

If someone would be so kind.....I am in need of a macro that will look to
A7, and then depending on how many consecutively populated cells are below
it, create RangeName "Data1" of that size. Then do the same thing for
RangeName "Data2" starting at cell B7. Then, combine the two as

RangeName
"Data3" from A7 whatever becomes the bottom end cell of

"Data2"........when
I do this by recording, it just hard-codes the cells and does not allow if
the range size changes.

Assuming Data in A7:B14, then

RangeName "Data1" would be assigned to A7:A14
RangeName "Data2" would be assigned to B7:B14
RangeName "Data3" would be assigned to A7:B14

TIA for any guidance.....
Vaya con Dios,
Chuck, CABGx3






  #6   Report Post  
Posted to microsoft.public.excel.programming
CLR CLR is offline
external usenet poster
 
Posts: 594
Default RangeSize set by macro

Thanks Sebastienm.............

I dunno what happened.........I know I wrote an answer to you before I left
work, but it's not showing up, so I guess the ether-gods ate
it...........anyway, it took several reads before I really understood what
you were suggesting, as the whole concept of putting formulas in as
reference for a RangeName is new to me. But cool it is, and most clever how
you accommodated my preferred range starting point of A7 rather than
A1.......... In the present case, Tom's code is what I went with, because
it worked and that was where my mindset was at the time, but I will for sure
keep this method in mind for the future........

Many thanks again............
Vaya con Dios,
Chuck, CABGx3


"sebastienm" wrote in message
...
If there is no empty cell within the data in column A, you coan define

your
Named Ranges (menu Insert Name Define) as:
Assuming there are 3 non-empty cells in A1:A6 (if 5, then change the '3'

in
into a 5 in the formulas)
Data1
=OFFSET($A$7,0,0,COUNTA($A:$A)-3,1)
Data2
=OFFSET($A$7,0,1,COUNTA($A:$A)-3,1)
Data3
=OFFSET($A$7,0,0,COUNTA($A:$A)-3,2)

These named ranges are dynamic, therefore update automatically when you

add
or delete data.

Regards,
Sebastien
"CLR" wrote:

Hi All.......

If someone would be so kind.....I am in need of a macro that will look

to
A7, and then depending on how many consecutively populated cells are

below
it, create RangeName "Data1" of that size. Then do the same thing for
RangeName "Data2" starting at cell B7. Then, combine the two as

RangeName
"Data3" from A7 whatever becomes the bottom end cell of

"Data2"........when
I do this by recording, it just hard-codes the cells and does not allow

if
the range size changes.

Assuming Data in A7:B14, then

RangeName "Data1" would be assigned to A7:A14
RangeName "Data2" would be assigned to B7:B14
RangeName "Data3" would be assigned to A7:B14

TIA for any guidance.....
Vaya con Dios,
Chuck, CABGx3



  #7   Report Post  
Posted to microsoft.public.excel.programming
CLR CLR is offline
external usenet poster
 
Posts: 594
Default RangeSize set by macro

Thanks JE............

I went and read your reference on Chip's page and it's really unbelievable
how much more RangeNames can be used than what I was capable of. I've only
used them to reference cells, or groups of cells identified by their
row/column locations. Of course this suggestion is the way to go in the
future after I practice a bit. This time I went with Tom's code..........it
was there, and worked, and I sorta understood it.......three good things in
my book.

Thanks again for your response..........
Vaya con Dios,
Chuck, CABGx3






"JE McGimpsey" wrote in message
...
You don't need programming, of course. It may be more efficient to use
dynamic ranges:

http://cpearson.com/excel/named.htm#Dynamic

But you can use something like:

Range(Cells(7, 1), Cells(Rows.Count, 1).End(xlUp)).Name = "Data1"
Range(Cells(7, 2), Cells(Rows.Count, 2).End(xlUp)).Name = "Data2"
Cells(7, 1).Resize(Range("Data2").Rows.Count,2).Name = "Data3"

or a bit more efficiently

Range(Cells(7, 1), Cells(Rows.Count, 1).End(xlUp)).Name = "Data1"
With Range(Cells(7, 2), Cells(Rows.Count, 2).End(xlUp))
.Name = "Data2"
Cells(7, 1).Resize(.Rows.Count,2).Name = "Data3"
End With




In article ,
CLR wrote:

Hi All.......

If someone would be so kind.....I am in need of a macro that will look

to
A7, and then depending on how many consecutively populated cells are

below
it, create RangeName "Data1" of that size. Then do the same thing for
RangeName "Data2" starting at cell B7. Then, combine the two as

RangeName
"Data3" from A7 whatever becomes the bottom end cell of

"Data2"........when
I do this by recording, it just hard-codes the cells and does not allow

if
the range size changes.

Assuming Data in A7:B14, then

RangeName "Data1" would be assigned to A7:A14
RangeName "Data2" would be assigned to B7:B14
RangeName "Data3" would be assigned to A7:B14

TIA for any guidance.....
Vaya con Dios,
Chuck, CABGx3



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Macro recorded... tabs & file names changed, macro hangs Steve Excel Worksheet Functions 3 October 30th 09 11:41 AM
Macro Help Needed - Excel 2007 - Print Macro with Auto Sort Gavin Excel Worksheet Functions 0 May 17th 07 01:20 PM
how to count/sum by function/macro to get the number of record to do copy/paste in macro tango Excel Programming 1 October 15th 04 01:16 PM
macro to delete entire rows when column A is blank ...a quick macro vikram Excel Programming 4 May 3rd 04 08:45 PM
Start Macro / Stop Macro / Restart Macro Pete[_13_] Excel Programming 2 November 21st 03 05:04 PM


All times are GMT +1. The time now is 09:47 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"