I inherited this code and have to fix it. It does work and I know I can refactor the code using If Not Intersect(Target, Me.Range()) Is Nothing Then syntax. I am wondering if using a function to pass the cell references in this case would be best, but im not really familiar on working with functions yet and would like some input or guidance on best practice with the code below. Please note I am well aware of the usage of select within this code block, but the original author wants me to keep the select to move the active cell based on selections made in the worksheet.
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim wb As Workbook: Set wb = Application.ThisWorkbook
Dim wsDE As Worksheet: Set wsDE = wb.Sheets("Data Entry")
Dim Unique_Identifier As String
Dim Wire_Type As String
With wsDE
Select Case Target.Address
Case Is = "$B$4": Hide_All
Select Case Range("B4")
Case Is <> ""
Range("A100:A199").EntireRow.Hidden = False
Range("B101").Select
Sheet5.Visible = xlSheetVisible 'Confirmation-Incoming
Range("B5") = ""
Case Else: Range("B5").Select
End Select
Case Is = "$B$5": Hide_All
Select Case Range("B5")
Case Is <> ""
Range("A200:A211").EntireRow.Hidden = False
Range("A216:A227").EntireRow.Hidden = False
Range("B201").Select
With ThisWorkbook
Sheet7.Visible = xlSheetVisible 'Checklist
Sheet4.Visible = xlSheetVisible 'Confirmation-Outgoing-1
Sheet2.Visible = xlSheetVisible 'Wire Transfer Request-1
End With
Select Case Range("B5")
Case Is > 1
Range("A200:A299").EntireRow.Hidden = False
Unique_Identifier = Range("B5").Value
Wire_Type = "Deposit/Loan"
Call Find_Recurring(Unique_Identifier, Wire_Type)
End Select
Case Else: Range("B6").Select
End Select
Case Is = "$B$6": Hide_All
Select Case Range("B6")
Case Is <> ""
Range("A300:A312").EntireRow.Hidden = False
Range("A316:A330").EntireRow.Hidden = False
Range("B301").Select
With ThisWorkbook
Sheet3.Visible = xlSheetVisible 'Checklist-Loan Closing
Sheet12.Visible = xlSheetVisible 'Confirmation-Outgoing-2
Sheet11.Visible = xlSheetVisible 'Wire Transfer Request-2
End With
Case Else: Range("B7").Select
End Select
Case Is = "$B$7": Hide_All
Select Case Range("B7")
Case Is <> ""
Range("A400:A411").EntireRow.Hidden = False
Range("A414:A499").EntireRow.Hidden = False
Range("B401").Select
With ThisWorkbook
Sheet9.Visible = xlSheetVisible 'Checklist-Cash Management
Sheet14.Visible = xlSheetVisible 'Confirmation-Outgoing-3
End With
Case Else: Range("B8").Select
End Select
Case Is = "$B$8": Hide_All
Select Case Range("B8")
Case Is <> ""
Range("A500:A599").EntireRow.Hidden = False
Range("B501").Select
With ThisWorkbook
Sheet13.Visible = xlSheetVisible 'Wire Transfer Request - Brokered-Internet
End With
Case Else: Range("B9").Select
End Select
Case Is = "$B$9": Hide_All
Select Case Range("B9")
Case Is <> ""
Range("A600:A610").EntireRow.Hidden = False
Range("B601").Select
Sheet8.Visible = xlSheetVisible 'Checklist-Internal
Select Case Range("B9")
Case Is > 1
Range("A600:A699").EntireRow.Hidden = False
Unique_Identifier = Range("B9").Value
Wire_Type = "Internal"
Call Find_Recurring(Unique_Identifier, Wire_Type)
End Select
Case Else: Range("B10").Select
End Select
Case Is = "$B$10": Hide_All
Select Case Range("B10")
Case Is <> ""
Sheet6.Visible = xlSheetVisible 'Wire Transfer Agreement
Sheets("Wire Transfer Agreement").Visible = True
Range("A5000:A5099").EntireRow.Hidden = False
Range("A5005:A5011").EntireRow.Hidden = True
Range("B5001").Select
Case Else: Range("B11").Select
End Select
Case Is = "$B$11": Hide_All
Select Case Range("B11")
Case Is <> ""
' Sheets("Recurring Wire Transfer Request").Visible = True
Sheet18.Visible = xlSheetVisible 'Recurring Wire Transfer Request
Range("A5100:A5118").EntireRow.Hidden = False
Range("A5111:A5114").EntireRow.Hidden = True
Range("B5101").Select
Case Else: Range("B11").Select
End Select
'Wires from Deposit Account or Loan (Post-Closing) Section
Case Is = "$B$205"
Select Case LCase(Range("B205"))
Case Is = "yes"
Range("A212:A215").EntireRow.Hidden = False
Case Else
Range("A212:A215").EntireRow.Hidden = True
Range("B206").Select
End Select
Case Is = "$B$227"
Select Case LCase(Range("B227"))
Case Is = "domestic"
Range("A222:A243").EntireRow.Hidden = False
Range("A267:A299").EntireRow.Hidden = False
Range("A244:A266").EntireRow.Hidden = True
Range("B229").Select
Case Is = "international"
Range("A244:A299").EntireRow.Hidden = False
Range("A228:A243").EntireRow.Hidden = True
Range("B245").Select
Case Is <> "international", "domestic"
Range("A228:A299").EntireRow.Hidden = True
Range("B227").Select
End Select
Case Is = "$B$269"
Select Case LCase(Range("B269"))
Case Is = "yes"
Sheets("Wire Transfer Agreement").Visible = True
Range("A5000:A5099").EntireRow.Hidden = False
Range("B282:B299").EntireRow.Hidden = True
Application.ScreenUpdating = True
Range("B5001").Select
Case Else
Sheets("Wire Transfer Agreement").Visible = False
Range("A5000:A5099").EntireRow.Hidden = True
Range("B281:B299").EntireRow.Hidden = False
Range("B270").Select
End Select
'Loan-Closing Wires Section
Case Is = "$B$306"
Select Case LCase(Range("B306"))
Case Is = "yes"
Range("A313:A316,A331").EntireRow.Hidden = False
Case Else
Range("A313:A316").EntireRow.Hidden = True
Range("A331").EntireRow.Hidden = False
Range("B307").Select
End Select
Case Is = "$B$331"
Select Case LCase(Range("B331"))
Case Is = "domestic"
Range("A332:A347").EntireRow.Hidden = False
Range("A370:A399").EntireRow.Hidden = False
Range("A348:A369").EntireRow.Hidden = True
Range("B331").Select
Case Is = "international"
Range("A347:A399").EntireRow.Hidden = False
Range("A332:A346").EntireRow.Hidden = True
Range("B349").Select
Case Is <> "domestic", "international"
Range("A332:A399").EntireRow.Hidden = True
Range("B331").Select
End Select
Case Is = "$B$373"
Select Case LCase(Range("B373"))
Case Is = "yes"
Sheets("Wire Transfer Agreement").Visible = True
Range("A5000:A5099").EntireRow.Hidden = False
Range("B383:B399").EntireRow.Hidden = True
Application.ScreenUpdating = True
Range("B5001").Select
Case Else
Sheets("Wire Transfer Agreement").Visible = False
Range("A5000:A5099").EntireRow.Hidden = True
Range("B383:B399").EntireRow.Hidden = False
Range("B374").Select
End Select
'Cash Management Wires Section
Case Is = "$B$406"
Select Case LCase(Range("B406"))
Case Is = "yes"
Range("A412:A413").EntireRow.Hidden = False
Case Else
Range("A412:A413").EntireRow.Hidden = True
Range("B407").Select
End Select
Case Is = "$B$425"
Select Case LCase(Range("B425"))
Case Is = "yes"
Range("A430:A431").EntireRow.Hidden = False
Case Else
Range("A430:A431").EntireRow.Hidden = True
Range("B426").Select
End Select
'Internal Foresight Wires Section
Case Is = "$B$610"
Select Case LCase(Range("B610"))
Case Is = "domestic"
Range("A611:A625").EntireRow.Hidden = False
Range("A648:A699").EntireRow.Hidden = False
Range("A626:A647").EntireRow.Hidden = True
Range("B612").Select
Case Is = "international"
Range("A626:A699").EntireRow.Hidden = False
Range("A611:A625").EntireRow.Hidden = True
Range("B627").Select
Case Is <> "international", "domestic"
Range("A611:A699").EntireRow.Hidden = True
Range("B610").Select
End Select
'Wire Transfer Agreement Section
Case Is = "$B$5004"
Range("A5005:A5011").EntireRow.Hidden = True
Range("B5004").Select
Select Case LCase(Range("B5004"))
Case Is = "entity"
Range("A5007:A5011").EntireRow.Hidden = False
Range("B5007").Select
Case Is = "individual(s)"
Range("A5005:A5006").EntireRow.Hidden = False
Range("B5005").Select
End Select
'Recurring Wire Transfer Request Section
Case Is = "$B$5104"
Range("A5111:A5114").EntireRow.Hidden = True
Range("B5105").Select
Select Case LCase(Range("B5104"))
Case Is = "yes"
Range("A5111:A5114").EntireRow.Hidden = False
Range("B5105").Select
Case Is = "no"
Range("A5111:A5114").EntireRow.Hidden = True
Range("B5105").Select
End Select
Case Is = "$B$5118"
Select Case LCase(Range("B5118"))
Case Is = "domestic"
Range("A5119:A5131").EntireRow.Hidden = False
Range("A5132:A5199").EntireRow.Hidden = True
Range("A5150").EntireRow.Hidden = False
Range("B5120").Select
Case Is = "international"
Range("A5119:A5131").EntireRow.Hidden = True
Range("A5132:A5149").EntireRow.Hidden = False
Range("A5151:A5199").EntireRow.Hidden = True
Range("B5133").Select
Case Is <> "international", "domestic"
Range("A5119:A5199").EntireRow.Hidden = True
Range("B5118").Select
End Select
End Select
End With
'CIF Calls
If Not Intersect(Target, Range("B103")) Is Nothing Then CIFIncoming
If Not Intersect(Target, Range("B206")) Is Nothing Then CIFOutD
If Not Intersect(Target, Range("B307")) Is Nothing Then CIFOutL
If Not Intersect(Target, Range("B407")) Is Nothing Then CIFOutCM
If Not Intersect(Target, Range("B506")) Is Nothing Then CIFBrokered
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
B5? You have two switches with the same criteria, one nested in the other. Looks like you could pull the secondselect case range("b5")out and it would work just fine. Have you attempted to simply some of the hidden ranges? E.g., Switch cases are for the cell and set a range, if range exists then.hidden=false. Lots of little things, but regarding the inquiry to the use of aFunction(), i don't believe it would be appropriate to use whenTargetis literally the cell and adding the function would be redundant. \$\endgroup\$Function()I can see what you are saying. \$\endgroup\$