ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Hiding rows w/ "" cell and printing (https://www.excelbanter.com/excel-programming/371702-hiding-rows-w-cell-printing.html)

Steve E

Hiding rows w/ "" cell and printing
 
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve

Die_Another_Day

Hiding rows w/ "" cell and printing
 
Steve, are you checking the formula or the value of $S254?
Range("S254").Formula = "" = False
Range("S254").Value = "" = True

Charles

Steve E wrote:
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve



Ron de Bruin

Hiding rows w/ "" cell and printing
 
Hi Steve

My EasyFilter add-in have a option to filter for formulas that not are ""
http://www.rondebruin.nl/easyfilter.htm

If you want to use a macro post back


--
Regards Ron de Bruin
http://www.rondebruin.nl



"Steve E" wrote in message ...
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve




Steve E

Hiding rows w/ "" cell and printing
 
DAD!

I've tried this:

With ActiveSheet
On Error Resume Next
Range("S").Formula = "" = False
Range("S").Value = "" = True
.Columns("S").SpecialCells(xlCellTypeBlanks).Entir eRow.Hidden =
True
.PrintOut
.Columns("S").SpecialCells(xlCellTypeBlanks).Entir eRow.Hidden =
False
On Error GoTo 0
End With

Which clearly didn't work... the range I need to look at to be value="" is
S10:S258

I am still in the intro to "VB for Dummies" so need a simple solution if one
exists...

Thanks for the help!

"Die_Another_Day" wrote:

Steve, are you checking the formula or the value of $S254?
Range("S254").Formula = "" = False
Range("S254").Value = "" = True

Charles

Steve E wrote:
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve




Steve E

Hiding rows w/ "" cell and printing
 
Hi Ron,

EasyFilter is great!

I'd like to have a macro or sheet code to do this so that I don't have to
worry about whether or not my user has installed the EasyFilter addin... can
you help?

Thanks!

Steve

"Ron de Bruin" wrote:

Hi Steve

My EasyFilter add-in have a option to filter for formulas that not are ""
http://www.rondebruin.nl/easyfilter.htm

If you want to use a macro post back


--
Regards Ron de Bruin
http://www.rondebruin.nl



"Steve E" wrote in message ...
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve





Die_Another_Day

Hiding rows w/ "" cell and printing
 
Steve, in a macro what you would need to write would be this:
Sub PrintNonBlank
Dim cnt as long
For cnt = 10 to 258
If Range("S" & cnt).Value = "" Then
Rows(cnt).Hidden = True
End If
Next
ActiveSheet.PrintOut
Rows("10:258").Hidden = False
End Sub

Charles

Steve E wrote:
DAD!

I've tried this:

With ActiveSheet
On Error Resume Next
Range("S").Formula = "" = False
Range("S").Value = "" = True
.Columns("S").SpecialCells(xlCellTypeBlanks).Entir eRow.Hidden =
True
.PrintOut
.Columns("S").SpecialCells(xlCellTypeBlanks).Entir eRow.Hidden =
False
On Error GoTo 0
End With

Which clearly didn't work... the range I need to look at to be value="" is
S10:S258

I am still in the intro to "VB for Dummies" so need a simple solution if one
exists...

Thanks for the help!

"Die_Another_Day" wrote:

Steve, are you checking the formula or the value of $S254?
Range("S254").Formula = "" = False
Range("S254").Value = "" = True

Charles

Steve E wrote:
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve





Steve E

Hiding rows w/ "" cell and printing
 
Charles,

It's pitiful I know... I added a control button to assign the macro to...
but I've got this wrong too....

Private Sub CommandButton1_Click()
Sub PrintNonBlank()
Dim cnt As Long
For cnt = 10 To 258
If Range("S" & cnt).Value = "" Then Rows(cnt).Hidden = True
End If
Next
ActiveSheet.PrintOut
Rows("10:258").Hidden = False
End Sub
End Sub

Also, should I expect to see the 'condensed' version when I view a print
preview?

Thanks!

Steve

"Die_Another_Day" wrote:

Steve, in a macro what you would need to write would be this:
Sub PrintNonBlank
Dim cnt as long
For cnt = 10 to 258
If Range("S" & cnt).Value = "" Then
Rows(cnt).Hidden = True
End If
Next
ActiveSheet.PrintOut
Rows("10:258").Hidden = False
End Sub

Charles

Steve E wrote:
DAD!

I've tried this:

With ActiveSheet
On Error Resume Next
Range("S").Formula = "" = False
Range("S").Value = "" = True
.Columns("S").SpecialCells(xlCellTypeBlanks).Entir eRow.Hidden =
True
.PrintOut
.Columns("S").SpecialCells(xlCellTypeBlanks).Entir eRow.Hidden =
False
On Error GoTo 0
End With

Which clearly didn't work... the range I need to look at to be value="" is
S10:S258

I am still in the intro to "VB for Dummies" so need a simple solution if one
exists...

Thanks for the help!

"Die_Another_Day" wrote:

Steve, are you checking the formula or the value of $S254?
Range("S254").Formula = "" = False
Range("S254").Value = "" = True

Charles

Steve E wrote:
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve





Ron de Bruin

Hiding rows w/ "" cell and printing
 
Hi Steve

This example you can use (original code for deleting rows)
http://www.rondebruin.nl/delete.htm#Union


This example check the cells in row 1 -100 in A

Sub UnionExample()
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long
Dim StartRow As Long
Dim EndRow As Long
Dim rng As Range

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView

With ActiveSheet
.DisplayPageBreaks = False
StartRow = 1
EndRow = 100

For Lrow = StartRow To EndRow Step 1

If IsError(.Cells(Lrow, "A").Value) Then
'Do nothing, This avoid a error if there is a error in the cell

ElseIf .Cells(Lrow, "A").Value = "" Then
If rng Is Nothing Then
Set rng = .Cells(Lrow, "A")
Else
Set rng = Application.Union(rng, .Cells(Lrow, "A"))
End If
End If

Next
End With

Hide all rows in one time
If Not rng Is Nothing Then rng.EntireRow.Hidden = True

ActiveWindow.View = ViewMode
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With
End Sub



--
Regards Ron de Bruin
http://www.rondebruin.nl



"Steve E" wrote in message ...
Hi Ron,

EasyFilter is great!

I'd like to have a macro or sheet code to do this so that I don't have to
worry about whether or not my user has installed the EasyFilter addin... can
you help?

Thanks!

Steve

"Ron de Bruin" wrote:

Hi Steve

My EasyFilter add-in have a option to filter for formulas that not are ""
http://www.rondebruin.nl/easyfilter.htm

If you want to use a macro post back


--
Regards Ron de Bruin
http://www.rondebruin.nl



"Steve E" wrote in message ...
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve







Charles Chickering

Hiding rows w/ "" cell and printing
 
Private Sub CommandButton1_Click()
Dim cnt As Long
For cnt = 10 To 258
If Range("S" & cnt).Value = "" Then Rows(cnt).Hidden = True
End If
Next
ActiveSheet.PrintOut
Rows("10:258").Hidden = False
End Sub

I removed the extra sub statements. That should fix it. And no you will not
see the appended version in print preview. You can comment out the
ActiveSheet.PrintOut and Rows("10:258").Hidden = False lines, then run the
macro, then check print preview if you want, or if that is really a needed
feature maybe Ron can come up with something more useable.

--
Charles Chickering

"A good example is twice the value of good advice."


"Steve E" wrote:

Charles,

It's pitiful I know... I added a control button to assign the macro to...
but I've got this wrong too....

Private Sub CommandButton1_Click()
Sub PrintNonBlank()
Dim cnt As Long
For cnt = 10 To 258
If Range("S" & cnt).Value = "" Then Rows(cnt).Hidden = True
End If
Next
ActiveSheet.PrintOut
Rows("10:258").Hidden = False
End Sub
End Sub

Also, should I expect to see the 'condensed' version when I view a print
preview?

Thanks!

Steve

"Die_Another_Day" wrote:

Steve, in a macro what you would need to write would be this:
Sub PrintNonBlank
Dim cnt as long
For cnt = 10 to 258
If Range("S" & cnt).Value = "" Then
Rows(cnt).Hidden = True
End If
Next
ActiveSheet.PrintOut
Rows("10:258").Hidden = False
End Sub

Charles

Steve E wrote:
DAD!

I've tried this:

With ActiveSheet
On Error Resume Next
Range("S").Formula = "" = False
Range("S").Value = "" = True
.Columns("S").SpecialCells(xlCellTypeBlanks).Entir eRow.Hidden =
True
.PrintOut
.Columns("S").SpecialCells(xlCellTypeBlanks).Entir eRow.Hidden =
False
On Error GoTo 0
End With

Which clearly didn't work... the range I need to look at to be value="" is
S10:S258

I am still in the intro to "VB for Dummies" so need a simple solution if one
exists...

Thanks for the help!

"Die_Another_Day" wrote:

Steve, are you checking the formula or the value of $S254?
Range("S254").Formula = "" = False
Range("S254").Value = "" = True

Charles

Steve E wrote:
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve





Steve E

Hiding rows w/ "" cell and printing
 
Hi Ron,

Welll.... I think I'm getting closer...

I tried to assign the code to a control button to "condense and print" my
BoM. When I 'click' now I get a complie error immediately preceeding the Sub
UnionExample() line...

Ideally, I'd like to be able to click on this button to condense the report
and then print it... and have a seperate button to click to 'undo' the
earlier condensation so that I can restore the entire report...

Your patience is remarkable and much appreciated.

Public Sub CommandButton1_Click()

Sub UnionExample()
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long
Dim StartRow As Long
Dim EndRow As Long
Dim rng As Range

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView

With ActiveSheet
.DisplayPageBreaks = False
StartRow = 10
EndRow = 273

For Lrow = StartRow To EndRow Step 1

If IsError(.Cells(Lrow, "S").Value) Then
'Do nothing, This avoid a error if there is a error in
the cell

' is comment break point supposed to be before the Do Nothing, or after?

ElseIf .Cells(Lrow, "S").Value = "" Then
If rng Is Nothing Then
Set rng = .Cells(Lrow, "S")
Else
Set rng = Application.Union(rng, .Cells(Lrow, "S"))
End If
End If

Next
End With

' Hide all rows in one time
If Not rng Is Nothing Then rng.EntireRow.Hidden = True

ActiveWindow.View = ViewMode
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With
End Sub



End Sub



"Ron de Bruin" wrote:

Hi Steve

This example you can use (original code for deleting rows)
http://www.rondebruin.nl/delete.htm#Union


This example check the cells in row 1 -100 in A

Sub UnionExample()
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long
Dim StartRow As Long
Dim EndRow As Long
Dim rng As Range

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView

With ActiveSheet
.DisplayPageBreaks = False
StartRow = 1
EndRow = 100

For Lrow = StartRow To EndRow Step 1

If IsError(.Cells(Lrow, "A").Value) Then
'Do nothing, This avoid a error if there is a error in the cell

ElseIf .Cells(Lrow, "A").Value = "" Then
If rng Is Nothing Then
Set rng = .Cells(Lrow, "A")
Else
Set rng = Application.Union(rng, .Cells(Lrow, "A"))
End If
End If

Next
End With

Hide all rows in one time
If Not rng Is Nothing Then rng.EntireRow.Hidden = True

ActiveWindow.View = ViewMode
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With
End Sub



--
Regards Ron de Bruin
http://www.rondebruin.nl



"Steve E" wrote in message ...
Hi Ron,

EasyFilter is great!

I'd like to have a macro or sheet code to do this so that I don't have to
worry about whether or not my user has installed the EasyFilter addin... can
you help?

Thanks!

Steve

"Ron de Bruin" wrote:

Hi Steve

My EasyFilter add-in have a option to filter for formulas that not are ""
http://www.rondebruin.nl/easyfilter.htm

If you want to use a macro post back


--
Regards Ron de Bruin
http://www.rondebruin.nl



"Steve E" wrote in message ...
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve







Ron de Bruin

Hiding rows w/ "" cell and printing
 
Hi Steve

Remove Sub UnionExample() and the last end sub

Better use it like this
with the macro UnionExample in a normal module

Private Sub CommandButton1_Click()
Call UnionExample
ActiveSheet.PrintOut preview:=True
End Sub

If you want you can unhide the rows with the same button after printing


--
Regards Ron de Bruin
http://www.rondebruin.nl



"Steve E" wrote in message ...
Hi Ron,

Welll.... I think I'm getting closer...

I tried to assign the code to a control button to "condense and print" my
BoM. When I 'click' now I get a complie error immediately preceeding the Sub
UnionExample() line...

Ideally, I'd like to be able to click on this button to condense the report
and then print it... and have a seperate button to click to 'undo' the
earlier condensation so that I can restore the entire report...

Your patience is remarkable and much appreciated.

Public Sub CommandButton1_Click()

Sub UnionExample()
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long
Dim StartRow As Long
Dim EndRow As Long
Dim rng As Range

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView

With ActiveSheet
.DisplayPageBreaks = False
StartRow = 10
EndRow = 273

For Lrow = StartRow To EndRow Step 1

If IsError(.Cells(Lrow, "S").Value) Then
'Do nothing, This avoid a error if there is a error in
the cell

' is comment break point supposed to be before the Do Nothing, or after?

ElseIf .Cells(Lrow, "S").Value = "" Then
If rng Is Nothing Then
Set rng = .Cells(Lrow, "S")
Else
Set rng = Application.Union(rng, .Cells(Lrow, "S"))
End If
End If

Next
End With

' Hide all rows in one time
If Not rng Is Nothing Then rng.EntireRow.Hidden = True

ActiveWindow.View = ViewMode
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With
End Sub



End Sub



"Ron de Bruin" wrote:

Hi Steve

This example you can use (original code for deleting rows)
http://www.rondebruin.nl/delete.htm#Union


This example check the cells in row 1 -100 in A

Sub UnionExample()
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long
Dim StartRow As Long
Dim EndRow As Long
Dim rng As Range

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView

With ActiveSheet
.DisplayPageBreaks = False
StartRow = 1
EndRow = 100

For Lrow = StartRow To EndRow Step 1

If IsError(.Cells(Lrow, "A").Value) Then
'Do nothing, This avoid a error if there is a error in the cell

ElseIf .Cells(Lrow, "A").Value = "" Then
If rng Is Nothing Then
Set rng = .Cells(Lrow, "A")
Else
Set rng = Application.Union(rng, .Cells(Lrow, "A"))
End If
End If

Next
End With

Hide all rows in one time
If Not rng Is Nothing Then rng.EntireRow.Hidden = True

ActiveWindow.View = ViewMode
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With
End Sub



--
Regards Ron de Bruin
http://www.rondebruin.nl



"Steve E" wrote in message ...
Hi Ron,

EasyFilter is great!

I'd like to have a macro or sheet code to do this so that I don't have to
worry about whether or not my user has installed the EasyFilter addin... can
you help?

Thanks!

Steve

"Ron de Bruin" wrote:

Hi Steve

My EasyFilter add-in have a option to filter for formulas that not are ""
http://www.rondebruin.nl/easyfilter.htm

If you want to use a macro post back


--
Regards Ron de Bruin
http://www.rondebruin.nl



"Steve E" wrote in message ...
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve









Steve E

Hiding rows w/ "" cell and printing
 
Ron,

Thank you so much for your help. I figured out what I was doing wrong and
everything is great now!

Really appreciate the 'real time' replies.

Steve

"Steve E" wrote:

Hi Ron,

Welll.... I think I'm getting closer...

I tried to assign the code to a control button to "condense and print" my
BoM. When I 'click' now I get a complie error immediately preceeding the Sub
UnionExample() line...

Ideally, I'd like to be able to click on this button to condense the report
and then print it... and have a seperate button to click to 'undo' the
earlier condensation so that I can restore the entire report...

Your patience is remarkable and much appreciated.

Public Sub CommandButton1_Click()

Sub UnionExample()
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long
Dim StartRow As Long
Dim EndRow As Long
Dim rng As Range

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView

With ActiveSheet
.DisplayPageBreaks = False
StartRow = 10
EndRow = 273

For Lrow = StartRow To EndRow Step 1

If IsError(.Cells(Lrow, "S").Value) Then
'Do nothing, This avoid a error if there is a error in
the cell

' is comment break point supposed to be before the Do Nothing, or after?

ElseIf .Cells(Lrow, "S").Value = "" Then
If rng Is Nothing Then
Set rng = .Cells(Lrow, "S")
Else
Set rng = Application.Union(rng, .Cells(Lrow, "S"))
End If
End If

Next
End With

' Hide all rows in one time
If Not rng Is Nothing Then rng.EntireRow.Hidden = True

ActiveWindow.View = ViewMode
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With
End Sub



End Sub



"Ron de Bruin" wrote:

Hi Steve

This example you can use (original code for deleting rows)
http://www.rondebruin.nl/delete.htm#Union


This example check the cells in row 1 -100 in A

Sub UnionExample()
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long
Dim StartRow As Long
Dim EndRow As Long
Dim rng As Range

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView

With ActiveSheet
.DisplayPageBreaks = False
StartRow = 1
EndRow = 100

For Lrow = StartRow To EndRow Step 1

If IsError(.Cells(Lrow, "A").Value) Then
'Do nothing, This avoid a error if there is a error in the cell

ElseIf .Cells(Lrow, "A").Value = "" Then
If rng Is Nothing Then
Set rng = .Cells(Lrow, "A")
Else
Set rng = Application.Union(rng, .Cells(Lrow, "A"))
End If
End If

Next
End With

Hide all rows in one time
If Not rng Is Nothing Then rng.EntireRow.Hidden = True

ActiveWindow.View = ViewMode
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With
End Sub



--
Regards Ron de Bruin
http://www.rondebruin.nl



"Steve E" wrote in message ...
Hi Ron,

EasyFilter is great!

I'd like to have a macro or sheet code to do this so that I don't have to
worry about whether or not my user has installed the EasyFilter addin... can
you help?

Thanks!

Steve

"Ron de Bruin" wrote:

Hi Steve

My EasyFilter add-in have a option to filter for formulas that not are ""
http://www.rondebruin.nl/easyfilter.htm

If you want to use a macro post back


--
Regards Ron de Bruin
http://www.rondebruin.nl



"Steve E" wrote in message ...
I have a master Bill of Materials with about 2750 possible rows but generally
only have contents in about 30 rows and want to hide all of the rows with no
value in a cell and then print the entire range (after the rows are hidden)
and then unhide the rows.

Print Range is:$A$1:$V$280
The cell that should control the action is in col "s" and contains a formula
like:
$S254=IF((SUM($D254:$R254)*FabricWasteFactor)=0,"" ,(SUM($D254:$R254)*FabricWasteFactor))
The $D:$R column range is the line item detail quantities.
When $S254 evaluates to "" I want to hide that row (for rows 10 thru 258)

I tried to use code that I found on Ron DeBruin's web site but couldn't get
it to work (I think because I have a formula in the cell so it is not truly
blank...) and can't figure out what I'd have to change to make it work and I
can't find another post that is 'on point'

All help is appreciated!

Steve








All times are GMT +1. The time now is 04:26 AM.

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