Search code examples
excelvbaworksheet-function

Multiple Worksheet_Changes in a single worksheet


I need to put two worksheet_changes into one sheet. In reading, I see that this is not possible unless you combine them. I have been trying to do so but am running into problems. Below is the code I am trying to get to work:

Private Sub Worksheet_Change(ByVal Target As Range)

ActiveSheet.Activate

If Not Application.Intersect(Range("C10:AA10"), Range(Target.Address)) 

Is Nothing Then
        Select Case Target.Value

Case Is = "": Rows("11:55").EntireRow.Hidden = True

 Case Is = "1": Rows("14:55").EntireRow.Hidden = True
                            Rows("11:13").EntireRow.Hidden = False

Case Is = "2":  Rows("17:55").EntireRow.Hidden = True
                            Rows("11:16").EntireRow.Hidden = False

Case Is = "3": Rows("20:55").EntireRow.Hidden = True
                            Rows("11:19").EntireRow.Hidden = False

 Case Is = "4":  Rows("23:55").EntireRow.Hidden = True
                            Rows("11:22").EntireRow.Hidden = False

 Case Is = "5": Rows("26:55").EntireRow.Hidden = True
                            Rows("11:25").EntireRow.Hidden = False

 End Select

If Not Application.Intersect(Range("C63:AA63"), Range(Target.Address)) 

Is Nothing Then

 Select Case Target.Value

 Case Is = "Other": Rows("64").EntireRow.Hidden = False

Rows("64").EntireRow.Hidden = True

End If

End Sub

Essentially, I need rows to appear/disappear based on a selection in row C10:AA63 and then I need a row to appear/disappear based on a selection in C63:AA63

Any help is appreciated


Solution

  • there are many mistakes, try this code

    Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Not Intersect(Range("C10:AA10"), Target) Is Nothing Then
        Select Case Target.Value
            Case "": Rows("11:55").Hidden = True
            Case 1
                Rows("14:55").Hidden = True
                Rows("11:13").Hidden = False
            Case 2
                Rows("17:55").Hidden = True
                Rows("11:16").Hidden = False
            Case 3
                Rows("20:55").Hidden = True
                Rows("11:19").Hidden = False
            Case 4
                Rows("23:55").Hidden = True
                Rows("11:22").Hidden = False
            Case 5
                Rows("26:55").Hidden = True
                Rows("11:25").Hidden = False
        End Select
    End If
    If Not Intersect(Range("C63:AA63"), Target) Is Nothing Then
        Select Case Target.Value
        Case "Other"
            Rows("64").Hidden = False
            Rows("64").Hidden = True
        End Select
    End If
    
    End Sub