Consulting

Results 1 to 3 of 3

Thread: Worksheet event does nothing

  1. #1
    VBAX Expert CatDaddy's Avatar
    Joined
    Jun 2011
    Posts
    581
    Location

    Worksheet event does nothing

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Integer
    Dim txt As String
    If Target = "$E$6" Then
        For i = 2 To ThisWorkbook.Sheets.Count
    ThisWorkbook.Sheets(i).Visible = xlSheetVeryHidden
    Next i
        Select Case Target.Text
    Case "CASH NO SERVICE":
                ThisWorkbook.Sheets("CASH NO SERVICE").Visible = xlSheetVisible
    Case "CASH WITH SERVICE":
                ThisWorkbook.Sheets("CASH WITH SERVICE").Visible = xlSheetVisible
    Case "FMV LEASE PAYMENT COMBINED WITH SERVICE PAYMENT":
                ThisWorkbook.Sheets("FMV LEASE WITH COMBINED SERVICE").Visible = xlSheetVisible
                ThisWorkbook.Sheets("FMV LEASE").Visible = xlSheetVisible
    Case "FMV LEASE PAYMENT WITH SERVICE PAYMENT SEPARATE":
                ThisWorkbook.Sheets("FMV LEASE-SEPARATE SERVICE").Visible = xlSheetVisible
                ThisWorkbook.Sheets("FMV LEASE").Visible = xlSheetVisible
                ThisWorkbook.Sheets("PROD SHED FMV").Visible = xlSheetVisible
    Case "IMP":
                ThisWorkbook.Sheets("IMP").Visible = xlSheetVisible
                ThisWorkbook.Sheets("IM AMENDMENT").Visible = xlSheetVisible
                ThisWorkbook.Sheets("PROD SHED IMP").Visible = xlSheetVisible
                ThisWorkbook.Sheets("PS-IT SERVICES ONLY").Visible = xlSheetVisible
    Case "SERVICE ONLY":
                ThisWorkbook.Sheets("SERVICE ONLY").Visible = xlSheetVisible
                ThisWorkbook.Sheets("MMSA").Visible = xlSheetVisible
    Case "PS/IT SERVICE ONLY":
                ThisWorkbook.Sheets("PS-IT SERVICES ONLY").Visible = xlSheetVisible
    End Select
    End If
    If Target = "$E$12" Then
    txt = ThisWorkbook.Sheets(1).Range("E6").Text
    If Target.Text = "YES" And (txt = "FMV LEASE PAYMENT COMBINED WITH SERVICE PAYMENT" _
            Or txt = "FMV LEASE PAYMENT WITH SERVICE PAYMENT SEPARATE") Then
    ThisWorkbook.Sheets("CONTINGENCY").Visible = xlSheetVisible
    End If
    End If
    End Sub
    Should be hiding and unhiding sheets based on the selection made in cell e6 or e12, not sure why its not working
    Last edited by Aussiebear; 04-27-2023 at 12:54 PM. Reason: Adjusted the code tags
    ------------------------------------------------
    Happy Coding my friends

  2. #2
    Distinguished Lord of VBAX VBAX Grand Master Bob Phillips's Avatar
    Joined
    Apr 2005
    Posts
    25,453
    Location
    You didn't specify a property of Target, so it defaults to value, and was testing Target.Value for $E$6, not Target.Address

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim i As Integer
        Dim txt As String
        If Target.Address = "$E$6" Then
            For i = 2 To ThisWorkbook.Sheets.Count
    ThisWorkbook.Sheets(i).Visible = xlSheetVeryHidden
    Next i
            Select Case Target.Text
    Case "CASH NO SERVICE":
                ThisWorkbook.Sheets("CASH NO SERVICE").Visible = xlSheetVisible
    Case "CASH WITH SERVICE":
                ThisWorkbook.Sheets("CASH WITH SERVICE").Visible = xlSheetVisible
    Case "FMV LEASE PAYMENT COMBINED WITH SERVICE PAYMENT":
                ThisWorkbook.Sheets("FMV LEASE WITH COMBINED SERVICE").Visible = xlSheetVisible
                ThisWorkbook.Sheets("FMV LEASE").Visible = xlSheetVisible
    Case "FMV LEASE PAYMENT WITH SERVICE PAYMENT SEPARATE":
                ThisWorkbook.Sheets("FMV LEASE-SEPARATE SERVICE").Visible = xlSheetVisible
                ThisWorkbook.Sheets("FMV LEASE").Visible = xlSheetVisible
                ThisWorkbook.Sheets("PROD SHED FMV").Visible = xlSheetVisible
    Case "IMP":
                ThisWorkbook.Sheets("IMP").Visible = xlSheetVisible
                ThisWorkbook.Sheets("IM AMENDMENT").Visible = xlSheetVisible
                ThisWorkbook.Sheets("PROD SHED IMP").Visible = xlSheetVisible
                ThisWorkbook.Sheets("PS-IT SERVICES ONLY").Visible = xlSheetVisible
    Case "SERVICE ONLY":
                ThisWorkbook.Sheets("SERVICE ONLY").Visible = xlSheetVisible
                ThisWorkbook.Sheets("MMSA").Visible = xlSheetVisible
    Case "PS/IT SERVICE ONLY":
                ThisWorkbook.Sheets("PS-IT SERVICES ONLY").Visible = xlSheetVisible
    End Select
        End If
    If Target.Address = "$E$12" Then
    txt = ThisWorkbook.Sheets(1).Range("E6").Text
    If Target.Text = "YES" And (txt = "FMV LEASE PAYMENT COMBINED WITH SERVICE PAYMENT" _
            Or txt = "FMV LEASE PAYMENT WITH SERVICE PAYMENT SEPARATE") Then
    ThisWorkbook.Sheets("CONTINGENCY").Visible = xlSheetVisible
    End If
        End If
    end sub
    Last edited by Aussiebear; 04-27-2023 at 12:55 PM. Reason: Adjusted the code tags
    ____________________________________________
    Nihil simul inventum est et perfectum

    Abusus non tollit usum

    Last night I dreamed of a small consolation enjoyed only by the blind: Nobody knows the trouble I've not seen!
    James Thurber

  3. #3
    VBAX Expert CatDaddy's Avatar
    Joined
    Jun 2011
    Posts
    581
    Location
    once again, you are the boss xld. i dont want to overstep any lines but i love you
    ------------------------------------------------
    Happy Coding my friends

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •