Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.misc
|
|||
|
|||
if cell = 0 then hide the row?
My spreadsheet is a list of names and hours and charges, but if name X, say
D14, has zero hours, say F14 = 0, then I do not need the row - otherwise my spreadsheet will have so many unused rows - and so want to hide it. To complicate matters, my spreadsheet has titles, etc, and clearly such a row has no value for hours in any cell, and these rows are not to be hidden. I see something that only conisders the "data rows" and hides them if the hours cell, F14, is zero. Allan |
#2
Posted to microsoft.public.excel.misc
|
|||
|
|||
if cell = 0 then hide the row?
Here is one way which assumes headings in rows 1 and 2. Just chan ge the F3
to the first real data row. Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Const WS_RANGE As String = "F3:F88536" On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then With Target If .Value = 0 Then .EntireRow.Hidden = True End If End With End If ws_exit: Application.EnableEvents = True End Sub 'This is worksheet event code, which means that it needs to be 'placed in the appropriate worksheet code module, not a standard 'code module. To do this, right-click on the sheet tab, select 'the View Code option from the menu, and paste the code in. -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Al" wrote in message ... My spreadsheet is a list of names and hours and charges, but if name X, say D14, has zero hours, say F14 = 0, then I do not need the row - otherwise my spreadsheet will have so many unused rows - and so want to hide it. To complicate matters, my spreadsheet has titles, etc, and clearly such a row has no value for hours in any cell, and these rows are not to be hidden. I see something that only conisders the "data rows" and hides them if the hours cell, F14, is zero. Allan |
#3
Posted to microsoft.public.excel.misc
|
|||
|
|||
if cell = 0 then hide the row?
Al,
If you don't want to do it with a macro, you can achieve this using a filter. In a column that you don't use (say column M), enter the formula = F3 in cell M3 and copy down to cover your rows of data. Highlight this column and select Data | Filter | Autofilter. Then select Custom... on the pull-down list and specify "Not Equal to" and "0" (i.e. zero) in the panels. All your rows with zero in column F will be hidden. Pete |
#4
Posted to microsoft.public.excel.misc
|
|||
|
|||
if cell = 0 then hide the row?
Typo, should be
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Const WS_RANGE As String = "F3:F66536" On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then With Target If .Value = 0 Then .EntireRow.Hidden = True End If End With End If ws_exit: Application.EnableEvents = True End Sub -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Bob Phillips" wrote in message ... Here is one way which assumes headings in rows 1 and 2. Just chan ge the F3 to the first real data row. Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Const WS_RANGE As String = "F3:F88536" On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then With Target If .Value = 0 Then .EntireRow.Hidden = True End If End With End If ws_exit: Application.EnableEvents = True End Sub 'This is worksheet event code, which means that it needs to be 'placed in the appropriate worksheet code module, not a standard 'code module. To do this, right-click on the sheet tab, select 'the View Code option from the menu, and paste the code in. -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Al" wrote in message ... My spreadsheet is a list of names and hours and charges, but if name X, say D14, has zero hours, say F14 = 0, then I do not need the row - otherwise my spreadsheet will have so many unused rows - and so want to hide it. To complicate matters, my spreadsheet has titles, etc, and clearly such a row has no value for hours in any cell, and these rows are not to be hidden. I see something that only conisders the "data rows" and hides them if the hours cell, F14, is zero. Allan |
#5
Posted to microsoft.public.excel.misc
|
|||
|
|||
if cell = 0 then hide the row?
Problem with that is it needs to be repeated every time a value is changed
to 0, it is not event driven. -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Pete" wrote in message ups.com... Al, If you don't want to do it with a macro, you can achieve this using a filter. In a column that you don't use (say column M), enter the formula = F3 in cell M3 and copy down to cover your rows of data. Highlight this column and select Data | Filter | Autofilter. Then select Custom... on the pull-down list and specify "Not Equal to" and "0" (i.e. zero) in the panels. All your rows with zero in column F will be hidden. Pete |
#6
Posted to microsoft.public.excel.misc
|
|||
|
|||
if cell = 0 then hide the row?
Bob, Pete,
Thanks for your replies...allow me to digest your advise then I'll get back to you with my results! One comment, I have now though, is that my "titles" do not only apprear in say rows 1 & 2. I have many "categories" of personnel, thus rows 17& 18 might be a header for "management", rows 34&35, for "sales reps", rows 51&52 for "mechanics" etc etc. Does this have a consequence on your replies? "Bob Phillips" wrote: Typo, should be Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Const WS_RANGE As String = "F3:F66536" On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then With Target If .Value = 0 Then .EntireRow.Hidden = True End If End With End If ws_exit: Application.EnableEvents = True End Sub -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Bob Phillips" wrote in message ... Here is one way which assumes headings in rows 1 and 2. Just chan ge the F3 to the first real data row. Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Const WS_RANGE As String = "F3:F88536" On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then With Target If .Value = 0 Then .EntireRow.Hidden = True End If End With End If ws_exit: Application.EnableEvents = True End Sub 'This is worksheet event code, which means that it needs to be 'placed in the appropriate worksheet code module, not a standard 'code module. To do this, right-click on the sheet tab, select 'the View Code option from the menu, and paste the code in. -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Al" wrote in message ... My spreadsheet is a list of names and hours and charges, but if name X, say D14, has zero hours, say F14 = 0, then I do not need the row - otherwise my spreadsheet will have so many unused rows - and so want to hide it. To complicate matters, my spreadsheet has titles, etc, and clearly such a row has no value for hours in any cell, and these rows are not to be hidden. I see something that only conisders the "data rows" and hides them if the hours cell, F14, is zero. Allan |
#7
Posted to microsoft.public.excel.misc
|
|||
|
|||
if cell = 0 then hide the row?
Then you need some type of indicator, such as a cell value, that can be
tested to see if it is a heading row. -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Al" wrote in message ... Bob, Pete, Thanks for your replies...allow me to digest your advise then I'll get back to you with my results! One comment, I have now though, is that my "titles" do not only apprear in say rows 1 & 2. I have many "categories" of personnel, thus rows 17& 18 might be a header for "management", rows 34&35, for "sales reps", rows 51&52 for "mechanics" etc etc. Does this have a consequence on your replies? "Bob Phillips" wrote: Typo, should be Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Const WS_RANGE As String = "F3:F66536" On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then With Target If .Value = 0 Then .EntireRow.Hidden = True End If End With End If ws_exit: Application.EnableEvents = True End Sub -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Bob Phillips" wrote in message ... Here is one way which assumes headings in rows 1 and 2. Just chan ge the F3 to the first real data row. Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Const WS_RANGE As String = "F3:F88536" On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then With Target If .Value = 0 Then .EntireRow.Hidden = True End If End With End If ws_exit: Application.EnableEvents = True End Sub 'This is worksheet event code, which means that it needs to be 'placed in the appropriate worksheet code module, not a standard 'code module. To do this, right-click on the sheet tab, select 'the View Code option from the menu, and paste the code in. -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Al" wrote in message ... My spreadsheet is a list of names and hours and charges, but if name X, say D14, has zero hours, say F14 = 0, then I do not need the row - otherwise my spreadsheet will have so many unused rows - and so want to hide it. To complicate matters, my spreadsheet has titles, etc, and clearly such a row has no value for hours in any cell, and these rows are not to be hidden. I see something that only conisders the "data rows" and hides them if the hours cell, F14, is zero. Allan |
#8
Posted to microsoft.public.excel.misc
|
|||
|
|||
if cell = 0 then hide the row?
If you want to try it my way then you will need to delete the formula
from the rows which are headings so that the cells are blank rather than zero. Pete |
#9
Posted to microsoft.public.excel.misc
|
|||
|
|||
if cell = 0 then hide the row?
OK..now I'm off to see if I can get this to work. Thanks for all advice to
date! "Bob Phillips" wrote: Then you need some type of indicator, such as a cell value, that can be tested to see if it is a heading row. -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Al" wrote in message ... Bob, Pete, Thanks for your replies...allow me to digest your advise then I'll get back to you with my results! One comment, I have now though, is that my "titles" do not only apprear in say rows 1 & 2. I have many "categories" of personnel, thus rows 17& 18 might be a header for "management", rows 34&35, for "sales reps", rows 51&52 for "mechanics" etc etc. Does this have a consequence on your replies? "Bob Phillips" wrote: Typo, should be Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Const WS_RANGE As String = "F3:F66536" On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then With Target If .Value = 0 Then .EntireRow.Hidden = True End If End With End If ws_exit: Application.EnableEvents = True End Sub -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Bob Phillips" wrote in message ... Here is one way which assumes headings in rows 1 and 2. Just chan ge the F3 to the first real data row. Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Const WS_RANGE As String = "F3:F88536" On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then With Target If .Value = 0 Then .EntireRow.Hidden = True End If End With End If ws_exit: Application.EnableEvents = True End Sub 'This is worksheet event code, which means that it needs to be 'placed in the appropriate worksheet code module, not a standard 'code module. To do this, right-click on the sheet tab, select 'the View Code option from the menu, and paste the code in. -- HTH Bob Phillips (remove nothere from email address if mailing direct) "Al" wrote in message ... My spreadsheet is a list of names and hours and charges, but if name X, say D14, has zero hours, say F14 = 0, then I do not need the row - otherwise my spreadsheet will have so many unused rows - and so want to hide it. To complicate matters, my spreadsheet has titles, etc, and clearly such a row has no value for hours in any cell, and these rows are not to be hidden. I see something that only conisders the "data rows" and hides them if the hours cell, F14, is zero. Allan |
#10
Posted to microsoft.public.excel.misc
|
|||
|
|||
if cell = 0 then hide the row?
OK..now I'm off to see if I can get this to work. Thanks for all advice to
date! "Pete" wrote: If you want to try it my way then you will need to delete the formula from the rows which are headings so that the cells are blank rather than zero. Pete |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Instead of a negative number, I'd like to show zero... | Excel Worksheet Functions | |||
Hide Cell Row and column number | Excel Discussion (Misc queries) | |||
copying cell names | Excel Discussion (Misc queries) | |||
Possible Lookup Table | Excel Worksheet Functions | |||
Hide hyperlink cell & replace with macros | Excel Worksheet Functions |