ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Autoadjust range declaration coding when inserting rows (https://www.excelbanter.com/excel-programming/442046-autoadjust-range-declaration-coding-when-inserting-rows.html)

JW73

Autoadjust range declaration coding when inserting rows
 
Is there a way to auto-adjust the range settings for when you add/delete rows
to an Excel sheet? I'm trying to set up an easy way for end-users to
show/hide blocks of information with a button, and I'm using the code below
for each button:

Private Sub CommandButton1_Click()
Dim myRng As Range
Set myRng = Me.Range("7:12")
myRng.EntireRow.Hidden = Not (myRng(1).EntireRow.Hidden)
End Sub

Now, the problem is that these blocks of info will have extra lines
inserted, which tends to break all of the coding. Is there some sort of
adjustment to the coding that I can make to accomodate for that situation, or
would the best way be to name each group of rows, and have the range set to
the names, letting Excel auto-adjust the name ranges and keeping the code
from breaking that way?

Barb Reinhardt

Autoadjust range declaration coding when inserting rows
 
What happens when some rows in the range are hidden and some are not? I
suspect you'll get an error on the line (although I've not tested it).

Barb Reinhardt



"JW73" wrote:

Is there a way to auto-adjust the range settings for when you add/delete rows
to an Excel sheet? I'm trying to set up an easy way for end-users to
show/hide blocks of information with a button, and I'm using the code below
for each button:

Private Sub CommandButton1_Click()
Dim myRng As Range
Set myRng = Me.Range("7:12")
myRng.EntireRow.Hidden = Not (myRng(1).EntireRow.Hidden)
End Sub

Now, the problem is that these blocks of info will have extra lines
inserted, which tends to break all of the coding. Is there some sort of
adjustment to the coding that I can make to accomodate for that situation, or
would the best way be to name each group of rows, and have the range set to
the names, letting Excel auto-adjust the name ranges and keeping the code
from breaking that way?


K_Macd

Autoadjust range declaration coding when inserting rows
 
Range naming is probably the best solution (although not fool proof). You can
write code that will find last row in a data region etc but I wouldn't
endorse it, especially in a shared workbook.

People familiar with database record handling experience invariably cringe
when it comes to managing new items in an excel 'table'.
--
Ken
"Using Dbase dialects since 82"
"Started with Visicalc in the same year"


"Barb Reinhardt" wrote:

What happens when some rows in the range are hidden and some are not? I
suspect you'll get an error on the line (although I've not tested it).

Barb Reinhardt



"JW73" wrote:

Is there a way to auto-adjust the range settings for when you add/delete rows
to an Excel sheet? I'm trying to set up an easy way for end-users to
show/hide blocks of information with a button, and I'm using the code below
for each button:

Private Sub CommandButton1_Click()
Dim myRng As Range
Set myRng = Me.Range("7:12")
myRng.EntireRow.Hidden = Not (myRng(1).EntireRow.Hidden)
End Sub

Now, the problem is that these blocks of info will have extra lines
inserted, which tends to break all of the coding. Is there some sort of
adjustment to the coding that I can make to accomodate for that situation, or
would the best way be to name each group of rows, and have the range set to
the names, letting Excel auto-adjust the name ranges and keeping the code
from breaking that way?


JW73

Autoadjust range declaration coding when inserting rows
 
Thanks - I was working on possible solutions all night, and based on the way
the form is set up, and who will be using it, decided that that would
probably have the least chance of breaking.

"K_Macd" wrote:

Range naming is probably the best solution (although not fool proof). You can
write code that will find last row in a data region etc but I wouldn't
endorse it, especially in a shared workbook.

People familiar with database record handling experience invariably cringe
when it comes to managing new items in an excel 'table'.
--
Ken
"Using Dbase dialects since 82"
"Started with Visicalc in the same year"


"Barb Reinhardt" wrote:

What happens when some rows in the range are hidden and some are not? I
suspect you'll get an error on the line (although I've not tested it).

Barb Reinhardt



"JW73" wrote:

Is there a way to auto-adjust the range settings for when you add/delete rows
to an Excel sheet? I'm trying to set up an easy way for end-users to
show/hide blocks of information with a button, and I'm using the code below
for each button:

Private Sub CommandButton1_Click()
Dim myRng As Range
Set myRng = Me.Range("7:12")
myRng.EntireRow.Hidden = Not (myRng(1).EntireRow.Hidden)
End Sub

Now, the problem is that these blocks of info will have extra lines
inserted, which tends to break all of the coding. Is there some sort of
adjustment to the coding that I can make to accomodate for that situation, or
would the best way be to name each group of rows, and have the range set to
the names, letting Excel auto-adjust the name ranges and keeping the code
from breaking that way?


JW73

Autoadjust range declaration coding when inserting rows
 
Nope - if some of the lines are visible, it hides the whole group upon click

"Barb Reinhardt" wrote:

What happens when some rows in the range are hidden and some are not? I
suspect you'll get an error on the line (although I've not tested it).

Barb Reinhardt



"JW73" wrote:

Is there a way to auto-adjust the range settings for when you add/delete rows
to an Excel sheet? I'm trying to set up an easy way for end-users to
show/hide blocks of information with a button, and I'm using the code below
for each button:

Private Sub CommandButton1_Click()
Dim myRng As Range
Set myRng = Me.Range("7:12")
myRng.EntireRow.Hidden = Not (myRng(1).EntireRow.Hidden)
End Sub

Now, the problem is that these blocks of info will have extra lines
inserted, which tends to break all of the coding. Is there some sort of
adjustment to the coding that I can make to accomodate for that situation, or
would the best way be to name each group of rows, and have the range set to
the names, letting Excel auto-adjust the name ranges and keeping the code
from breaking that way?



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

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