Reputation: 21
I am creating a document that has a list of items, which I would like to appear or be hidden, depending on certain dropdowns.
I've run into an issue where one dropdown box in cell E30 is conditional.
I need:
IF E30 = 'No' AND E6 = 'VIC'
Then Rows 1:45 are not hidden AND Rows 46:81 are hidden
IF E30 = 'Yes' AND E6 = 'VIC'
Then Rows 1:33 are not hidden AND Rows 34:81 are hidden
IF E30 = 'No' AND E6 = 'OTHER'
Then Rows 1:33 and 64:81 are not hidden AND Rows 34:63 are hidden
IF E30 ='Yes' AND E6 ='OTHER'
Then Rows 1:33 are not hidden AND Rows 34:81 are hidden
The following is the code I have so far.
The first group is working as designed.
The second is the above partial code I have a problem with.
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Activate
If Not Application.Intersect(Range("E19"), Range(Target.Address)) Is Nothing Then
Select Case Target.Value
Case Is = "NO": Rows("34:81").EntireRow.Hidden = True
Rows("1:22").EntireRow.Hidden = False
Rows("23:33").EntireRow.Hidden = False
Case Is = "YES": Rows("23:81").EntireRow.Hidden = True
Rows("1:22").EntireRow.Hidden = False
End Select
End If
ActiveSheet.Activate
If Not Application.Intersect(Range("E30"), Range(Target.Address)) Is Nothing Then
Select Case Target.Value
Case Is = "YES": Rows("34:81").EntireRow.Hidden = True
Rows("1:33").EntireRow.Hidden = False
Case Is = "NO": Rows("34:63").EntireRow.Hidden = True
Rows("1:33").EntireRow.Hidden = False
Rows("64:81").EntireRow.Hidden = False
End Select
End If
End Sub
Upvotes: 2
Views: 392
Reputation: 54807
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("E19"), Target) Is Nothing Then
Select Case UCase(CStr(Range("E19").Value))
Case "YES"
Rows("1:22").Hidden = False
Rows("23:81").Hidden = True
Case "NO"
Rows("1:22").Hidden = False
Rows("23:33").Hidden = False
Rows("34:81").EntireRow.Hidden = True
'Case Else
End Select
End If
'Yes
'IF E30 = 'Yes' AND E6 = 'VIC'
'Then Rows 1:33 are not hidden AND Rows 34:81 are hidden
'IF E30 ='Yes' AND E6 ='OTHER'
'Then Rows 1:33 are not hidden AND Rows 34:81 are hidden
'No
'IF E30 = 'No' AND E6 = 'VIC'
'Then Rows 1:45 are not hidden AND Rows 46:81 are hidden
'IF E30 = 'No' AND E6 = 'OTHER'
'Then Rows 1:33 and 64:81 are not hidden AND Rows 34:63 are hidden
If Not Intersect(Range("E6,E30"), Target) Is Nothing Then
Select Case UCase(CStr(Range("E30").Value))
Case "YES"
Select Case UCase(CStr(Range("E6").Value))
Case "VIC", "OTHER"
Rows("1:33").Hidden = False
Rows("34:81").Hidden = True
'Case Else
End Select
Case "NO"
Select Case UCase(CStr(Range("E6").Value))
Case "VIC"
Rows("1:45").Hidden = False
Rows("46:81").Hidden = True
Case "OTHER"
Rows("1:33").Hidden = False
Rows("34:63").Hidden = True
Rows("64:81").Hidden = False
'Case Else
End Select
'Case Else
End Select
End If
End Sub
Upvotes: 1
Reputation: 444
Here is the code - Make sure to replace Sheet1 with your sheet.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$6" Or Target.Address = "$E$30" Then
If Sheet1.Range("E30").Value = "No" And Sheet1.Range("E6").Value = "VIC" Then
Sheet1.Range("A1:A45").Rows.EntireRow.Hidden = False
Sheet1.Range("A46:A81").Rows.EntireRow.Hidden = True
ElseIf Sheet1.Range("E30").Value = "Yes" And Sheet1.Range("E6").Value = "VIC" Then
Sheet1.Range("A1:A33").Rows.EntireRow.Hidden = False
Sheet1.Range("A34:A81").Rows.EntireRow.Hidden = True
ElseIf Sheet1.Range("E30").Value = "No" And Sheet1.Range("E6").Value = "OTHER" Then
Sheet1.Range("A1:A33").Rows.EntireRow.Hidden = False
Sheet1.Range("A64:A81").Rows.EntireRow.Hidden = False
Sheet1.Range("A34:A63").Rows.EntireRow.Hidden = True
ElseIf Sheet1.Range("E30").Value = "Yes" And Sheet1.Range("E6").Value = "OTHER" Then
Sheet1.Range("A1:A33").Rows.EntireRow.Hidden = False
Sheet1.Range("A34:A81").Rows.EntireRow.Hidden = True
End If
Upvotes: 0