View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Rick Rothstein \(MVP - VB\)[_2072_] Rick Rothstein \(MVP - VB\)[_2072_] is offline
external usenet poster
 
Posts: 1
Default unhide rows based on data validation

Actually, Per include a filter which I inadvertently left out. Combining
such a filter into the code I previously posted yields this code which you
should use instead of what I posted earlier...

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$30" Then
Application.ScreenUpdating = False
If Range("E30").Value = "0" Then
Rows("144:238").Hidden = True
ElseIf Range("E30").Value = "1" Then
Rows("144:238").Hidden = False
End If
Application.ScreenUpdating = True
End If
End Sub

The filter on the Target (the cell you are changing) stops the code from
executing when something else other than E30 is changed. By the way, what
did you want to have happen if E30 is set to something other than 0 or 1? Or
are those possible values enforced in code somehow? Right now, if you set
E30 to something else, nothing happens to affect the visibility of those
rows.

Rick


"Rick Rothstein (MVP - VB)" wrote in
message ...
Actually, it looks like the EntireRow qualifier is not required with a
call to Rows... this seems to work fine...

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Range("E30").Value = "0" Then
Rows("144:238").Hidden = True
ElseIf Range("E30").Value = "1" Then
Rows("144:238").Hidden = False
End If
Application.ScreenUpdating = True
End Sub

Rick


"Rick Rothstein (MVP - VB)" wrote in
message ...
Give this a try...

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Range("E30").Value = "0" Then
Rows("144:238").EntireRow.Hidden = True
ElseIf Range("E30").Value = "1" Then
Rows("144:238").EntireRow.Hidden = False
End If
Application.ScreenUpdating = True
End Sub

Rick


"cathy" wrote in message
...
I have a data validation list in cell $E$30 of either "0" or "1".

If the user selects "0" I want to hide rows 144 - 238.
If the user selects "1" I want rows 144-238 to appear.

I tried the following code - but it didn't seem to work. Any help is
appreciated.

Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False
If Range("E30").Value = "0" Then
Range(Rows(144), Rows(238)).EntireRow.Hidden = True
ElseIf Range("E30").Value = "1" Then
Range(Rows(144), Rows(238)).EntireRow.Hidden = False:
End If
Application.ScreenUpdating = True
End Sub
--
Cathy