ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Adding to a Row Range (https://www.excelbanter.com/excel-programming/370709-adding-row-range.html)

VicWestVan

Adding to a Row Range
 
I currently have a simple Loop applied for example to rows 1- 10 that Hides
consecutive empty rows... it checks a row (starting from 10), if the row is
empty, the row is hidden, then moves to row 9 and repeats, all the way to row
1.

Do Until ActiveCell < ""
Selection.EntireRow.Hidden = True
ActiveCell.Offset(-1, 0).Select
Loop

Any suggestions on how to change the code to check a row i.e. Row 10, if the
row is empty, then add Row 10 to the Row Range, then check Row 9, add 9:10 to
the Row Range, then after all checking, apply the HiddenRows command to the
final Row Range?

Thx,
Vic

Tom Ogilvy

Adding to a Row Range
 
Dim rng as Range
Do Until ActiveCell < ""
if rng is nothing then
set rng = ActiveCell
else
set rng = union(rng,activecell)
end if
if ActiveCell.row = 1 then exit do
ActiveCell.Offset(-1, 0).Select
Loop
if not rng is nothing then
rng.Entirerow.Hidden = True
end if

--
Regards,
Tom Ogilvy



"VicWestVan" wrote:

I currently have a simple Loop applied for example to rows 1- 10 that Hides
consecutive empty rows... it checks a row (starting from 10), if the row is
empty, the row is hidden, then moves to row 9 and repeats, all the way to row
1.

Do Until ActiveCell < ""
Selection.EntireRow.Hidden = True
ActiveCell.Offset(-1, 0).Select
Loop

Any suggestions on how to change the code to check a row i.e. Row 10, if the
row is empty, then add Row 10 to the Row Range, then check Row 9, add 9:10 to
the Row Range, then after all checking, apply the HiddenRows command to the
final Row Range?

Thx,
Vic


excelent

Adding to a Row Range
 
try
Sub Hide()
Selection.SpecialCells(xlCellTypeBlanks).Select
'Selection.EntireRow.Hidden = True
MsgBox ("") & Selection.Address
End Sub

just run or select range and then run




"Tom Ogilvy" skrev:

Dim rng as Range
Do Until ActiveCell < ""
if rng is nothing then
set rng = ActiveCell
else
set rng = union(rng,activecell)
end if
if ActiveCell.row = 1 then exit do
ActiveCell.Offset(-1, 0).Select
Loop
if not rng is nothing then
rng.Entirerow.Hidden = True
end if

--
Regards,
Tom Ogilvy



"VicWestVan" wrote:

I currently have a simple Loop applied for example to rows 1- 10 that Hides
consecutive empty rows... it checks a row (starting from 10), if the row is
empty, the row is hidden, then moves to row 9 and repeats, all the way to row
1.

Do Until ActiveCell < ""
Selection.EntireRow.Hidden = True
ActiveCell.Offset(-1, 0).Select
Loop

Any suggestions on how to change the code to check a row i.e. Row 10, if the
row is empty, then add Row 10 to the Row Range, then check Row 9, add 9:10 to
the Row Range, then after all checking, apply the HiddenRows command to the
final Row Range?

Thx,
Vic


Tom Ogilvy

Adding to a Row Range
 
This is certainly more efficient, but
if the range contained formulas such as =if(condition,"",value)
or if they previously contained such a formula and the OP did edit copy
followed by edit=Paste special, values
or if the filled cells were not contiguous from A1

then this approach would not operate as the OP's original code.

--
Regards,
Tom Ogilvy


"excelent" wrote:

try
Sub Hide()
Selection.SpecialCells(xlCellTypeBlanks).Select
'Selection.EntireRow.Hidden = True
MsgBox ("") & Selection.Address
End Sub

just run or select range and then run




"Tom Ogilvy" skrev:

Dim rng as Range
Do Until ActiveCell < ""
if rng is nothing then
set rng = ActiveCell
else
set rng = union(rng,activecell)
end if
if ActiveCell.row = 1 then exit do
ActiveCell.Offset(-1, 0).Select
Loop
if not rng is nothing then
rng.Entirerow.Hidden = True
end if

--
Regards,
Tom Ogilvy



"VicWestVan" wrote:

I currently have a simple Loop applied for example to rows 1- 10 that Hides
consecutive empty rows... it checks a row (starting from 10), if the row is
empty, the row is hidden, then moves to row 9 and repeats, all the way to row
1.

Do Until ActiveCell < ""
Selection.EntireRow.Hidden = True
ActiveCell.Offset(-1, 0).Select
Loop

Any suggestions on how to change the code to check a row i.e. Row 10, if the
row is empty, then add Row 10 to the Row Range, then check Row 9, add 9:10 to
the Row Range, then after all checking, apply the HiddenRows command to the
final Row Range?

Thx,
Vic


VicWestVan

Adding to a Row Range
 
Tom... you're the man... thx very much... as you noted later, this works best
in a more general case.

Thx again,

Vic
West Vancouver

"Tom Ogilvy" wrote:

Dim rng as Range
Do Until ActiveCell < ""
if rng is nothing then
set rng = ActiveCell
else
set rng = union(rng,activecell)
end if
if ActiveCell.row = 1 then exit do
ActiveCell.Offset(-1, 0).Select
Loop
if not rng is nothing then
rng.Entirerow.Hidden = True
end if

--
Regards,
Tom Ogilvy



"VicWestVan" wrote:

I currently have a simple Loop applied for example to rows 1- 10 that Hides
consecutive empty rows... it checks a row (starting from 10), if the row is
empty, the row is hidden, then moves to row 9 and repeats, all the way to row
1.

Do Until ActiveCell < ""
Selection.EntireRow.Hidden = True
ActiveCell.Offset(-1, 0).Select
Loop

Any suggestions on how to change the code to check a row i.e. Row 10, if the
row is empty, then add Row 10 to the Row Range, then check Row 9, add 9:10 to
the Row Range, then after all checking, apply the HiddenRows command to the
final Row Range?

Thx,
Vic



All times are GMT +1. The time now is 11:00 PM.

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