+ Reply to Thread
Results 1 to 3 of 3

Resize Named Ranges Help

  1. #1
    Ray Batig
    Guest

    Resize Named Ranges Help

    Greetings,

    I use the following code to automatically resize a named worksheet range of
    contiguous data that is in one column and grows vertically.

    With Worksheets("Sheetname").Range("WorkingData").Resize(1, 1)
    .Parent.Range(.Item(1), .Parent.Cells(Rows.Count, .Column) _
    .End(xlUp)).Name = "WorkingData"
    End With

    It was published in this group and has proven very useful.Unfortunately I
    can't seem to write code that is this compact or find any references how you
    combine Resize and various scenarios.

    1. With the assumptions that the named worksheet range of contiguous data is
    in multiple columns and grows vertically, how would you alter the code?
    2. With the assumptions that the named worksheet range of non-contiguous
    data is in multiple columns and grows vertically, how would you alter the
    code?
    3. With the assumptions that the named worksheet range of contiguous data is
    in multiple columns and grows horizontally, how would you alter the code?
    4. With the assumptions that the named worksheet range of non-contiguous
    data is in multiple columns and grows horizontally, how would you alter the
    code?
    5. With the assumptions that the named worksheet range of contiguous data is
    in multiple columns and grows vertically and horizontally, how would you
    alter the code?
    6. With the assumptions that the named worksheet range of non-contiguous
    data is in multiple columns and grows vertically and horizontally, how would
    you alter the code?

    Thank you in advance for your help!!

    Ray



  2. #2
    Dave Peterson
    Guest

    Re: Resize Named Ranges Help

    When I have trouble seeing what's going on, I'll use multiple statements.


    dim TopCell as range
    dim BotCell as range
    With worksheets("sheetname")
    set topcell = .range("workingdata").cells(1,1) 'same as .resize(1,1)
    set botcell = .cells(.rows.count,topcell.column).end(xlup)
    .range(topcell,botcell).name = "WorkingData"
    end with

    Same kind of thing when you extend to the right.

    As for noncontiguous areas, I think I'd break it down into each area and then
    use Union to put it all together.

    dim TopCell as Range
    dim BotCell as range
    Dim AllRng as range
    dim myArea as range

    with worksheets("sheetname")
    for each myarea in .range("workingdata").areas
    set topcell = myarea.cells(1,1) 'same as .resize(1,1)
    set botcell = .cells(.rows.count,topcell.column).end(xlup)
    if allrng is nothing then
    set allrng = .range(topcell,botcell)
    else
    set allrng = union(allrng,.range(topcell,botcell)
    end if
    next myarea
    end with

    if allrng is nothing then
    'something very bad happened!
    else
    allrng.name = "workingdata"
    end if

    This picks out the first column of each area and extends that column--the
    resulting range may not have the same number of rows in each area.


    Ray Batig wrote:
    >
    > Greetings,
    >
    > I use the following code to automatically resize a named worksheet range of
    > contiguous data that is in one column and grows vertically.
    >
    > With Worksheets("Sheetname").Range("WorkingData").Resize(1, 1)
    > .Parent.Range(.Item(1), .Parent.Cells(Rows.Count, .Column) _
    > .End(xlUp)).Name = "WorkingData"
    > End With
    >
    > It was published in this group and has proven very useful.Unfortunately I
    > can't seem to write code that is this compact or find any references how you
    > combine Resize and various scenarios.
    >
    > 1. With the assumptions that the named worksheet range of contiguous data is
    > in multiple columns and grows vertically, how would you alter the code?
    > 2. With the assumptions that the named worksheet range of non-contiguous
    > data is in multiple columns and grows vertically, how would you alter the
    > code?
    > 3. With the assumptions that the named worksheet range of contiguous data is
    > in multiple columns and grows horizontally, how would you alter the code?
    > 4. With the assumptions that the named worksheet range of non-contiguous
    > data is in multiple columns and grows horizontally, how would you alter the
    > code?
    > 5. With the assumptions that the named worksheet range of contiguous data is
    > in multiple columns and grows vertically and horizontally, how would you
    > alter the code?
    > 6. With the assumptions that the named worksheet range of non-contiguous
    > data is in multiple columns and grows vertically and horizontally, how would
    > you alter the code?
    >
    > Thank you in advance for your help!!
    >
    > Ray


    --

    Dave Peterson

  3. #3
    Dave Peterson
    Guest

    Re: Resize Named Ranges Help

    I didn't test any of that code and missed a closing paren with this line:
    Set AllRng = Union(AllRng, .Range(TopCell, BotCell))

    Dave Peterson wrote:
    >
    > When I have trouble seeing what's going on, I'll use multiple statements.
    >
    > dim TopCell as range
    > dim BotCell as range
    > With worksheets("sheetname")
    > set topcell = .range("workingdata").cells(1,1) 'same as .resize(1,1)
    > set botcell = .cells(.rows.count,topcell.column).end(xlup)
    > .range(topcell,botcell).name = "WorkingData"
    > end with
    >
    > Same kind of thing when you extend to the right.
    >
    > As for noncontiguous areas, I think I'd break it down into each area and then
    > use Union to put it all together.
    >
    > dim TopCell as Range
    > dim BotCell as range
    > Dim AllRng as range
    > dim myArea as range
    >
    > with worksheets("sheetname")
    > for each myarea in .range("workingdata").areas
    > set topcell = myarea.cells(1,1) 'same as .resize(1,1)
    > set botcell = .cells(.rows.count,topcell.column).end(xlup)
    > if allrng is nothing then
    > set allrng = .range(topcell,botcell)
    > else
    > set allrng = union(allrng,.range(topcell,botcell)
    > end if
    > next myarea
    > end with
    >
    > if allrng is nothing then
    > 'something very bad happened!
    > else
    > allrng.name = "workingdata"
    > end if
    >
    > This picks out the first column of each area and extends that column--the
    > resulting range may not have the same number of rows in each area.
    >
    > Ray Batig wrote:
    > >
    > > Greetings,
    > >
    > > I use the following code to automatically resize a named worksheet range of
    > > contiguous data that is in one column and grows vertically.
    > >
    > > With Worksheets("Sheetname").Range("WorkingData").Resize(1, 1)
    > > .Parent.Range(.Item(1), .Parent.Cells(Rows.Count, .Column) _
    > > .End(xlUp)).Name = "WorkingData"
    > > End With
    > >
    > > It was published in this group and has proven very useful.Unfortunately I
    > > can't seem to write code that is this compact or find any references how you
    > > combine Resize and various scenarios.
    > >
    > > 1. With the assumptions that the named worksheet range of contiguous data is
    > > in multiple columns and grows vertically, how would you alter the code?
    > > 2. With the assumptions that the named worksheet range of non-contiguous
    > > data is in multiple columns and grows vertically, how would you alter the
    > > code?
    > > 3. With the assumptions that the named worksheet range of contiguous data is
    > > in multiple columns and grows horizontally, how would you alter the code?
    > > 4. With the assumptions that the named worksheet range of non-contiguous
    > > data is in multiple columns and grows horizontally, how would you alter the
    > > code?
    > > 5. With the assumptions that the named worksheet range of contiguous data is
    > > in multiple columns and grows vertically and horizontally, how would you
    > > alter the code?
    > > 6. With the assumptions that the named worksheet range of non-contiguous
    > > data is in multiple columns and grows vertically and horizontally, how would
    > > you alter the code?
    > >
    > > Thank you in advance for your help!!
    > >
    > > Ray

    >
    > --
    >
    > Dave Peterson


    --

    Dave Peterson

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1