Good afternoon all,
I've got a document with a handful of data validations that hide/show X rows depending on what is chosen via the data validation, and I'm looking for some code that will hide all rows that have a value of 0 when the row is unhidden via value selected in data validation. Below is some code that works wonderfully for the purpose of hiding the 0s when data validation is selected; the only issue Im having with it is anytime I change ANY cell, it runs (and takes a few moments to complete, which is annoying). Ultimately what I'm looking for is an alternate to the below code that does what the below code does, but only when a data validation is the value that is changing.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, j As Long
Application.ScreenUpdating = False
If Target.Address = "$C$3" Then
Range("A5:A472").EntireRow.Hidden = True
Select Case Target.Text
Case " ": Range("A5:A112").EntireRow.Hidden = False
Case "HD": Range("A113:A228").EntireRow.Hidden = False
Case "WR": Range("A229:A348").EntireRow.Hidden = False
Case "HD WR": Range("A349:A472").EntireRow.Hidden = False
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Range("A" & i) = 0 Then
Do Until Range("A" & j + 1) <> 0: j = j + 1: Loop
Range("A" & i & ":A" & j).EntireRow.Hidden = True
End If: Next i
End Select
End If
If Target.Address = "$C$499" Then
Range("A501:A920").EntireRow.Hidden = True
Select Case Target.Text
Case "C": Range("A501:A704").EntireRow.Hidden = False
Case "XLC": Range("A705:A812").EntireRow.Hidden = False
Case "A": Range("A813:A920").EntireRow.Hidden = False
End Select
End If
If Target.Address = "$C$945" Then
Range("A947:A1066").EntireRow.Hidden = True
Select Case Target.Text
Case " ": Range("A947:A1066").EntireRow.Hidden = False
End Select
End If
If Target.Address = "$C$1093" Then
Range("A1095:A3042").EntireRow.Hidden = True
Select Case Target.Text
Case "200 WSB": Range("A1095:A1266").EntireRow.Hidden = False
Case "200 Chubs": Range("A1267:A1426").EntireRow.Hidden = False
Case "250 WSB": Range("A1427:A1606").EntireRow.Hidden = False
Case "250 Chubs": Range("A1607:A1766").EntireRow.Hidden = False
Case "250 MS+ Chubs": Range("A1767:A1942").EntireRow.Hidden = False
Case "250 MS+ WSB": Range("A1943:A2078").EntireRow.Hidden = False
Case "450 WSB": Range("A2079:A2214").EntireRow.Hidden = False
Case "450 Chubs": Range("A2215:A2334").EntireRow.Hidden = False
Case "450 MS+ Chubs": Range("A2335:A2446").EntireRow.Hidden = False
Case "500 WSB": Range("A2447:A2594").EntireRow.Hidden = False
Case "500 Chubs": Range("A2595:A2718").EntireRow.Hidden = False
Case "600 HE Chubs": Range("A2719:A2882").EntireRow.Hidden = False
Case "600 LD Chubs": Range("A2883:A3042").EntireRow.Hidden = False
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Range("A" & i) = 0 Then
Do Until Range("A" & j + 1) <> 0: j = j + 1: Loop
Range("A" & i & ":A" & j).EntireRow.Hidden = True
End If: Next i
End Select
End If
If Target.Address = "$C$3069" Then
Range("A3071:A3194").EntireRow.Hidden = True
Select Case Target.Text
Case "EF": Range("A3071:A3194").EntireRow.Hidden = False
End Select
End If
If Target.Address = "$C$3221" Then
Range("A3223:A3410").EntireRow.Hidden = True
Select Case Target.Text
Case "HE": Range("A3223:A3410").EntireRow.Hidden = False
End Select
End If
If Target.Address = "$C$3435" Then
Range("A3437:A3560").EntireRow.Hidden = True
Select Case Target.Text
Case " ": Range("A3437:A3560").EntireRow.Hidden = False
End Select
End If
If Target.Address = "$C$3587" Then
Range("A3589:A4020").EntireRow.Hidden = True
Select Case Target.Text
Case "AES": Range("A3589:A3796").EntireRow.Hidden = False
Case "DET": Range("A3797:A4020").EntireRow.Hidden = False
End Select
End If
If Target.Address = "$C$4047" Then
Range("A4049:A4336").EntireRow.Hidden = True
Select Case Target.Text
Case "P": Range("A4049:A4200").EntireRow.Hidden = False
Case "Geoprime": Range("A4201:A4336").EntireRow.Hidden = False
End Select
End If
If Target.Address = "$C$4363" Then
Range("A4365:A7376").EntireRow.Hidden = True
Select Case Target.Text
Case "DDE": Range("A4365:A4952").EntireRow.Hidden = False
Case "LP": Range("A4953:A5540").EntireRow.Hidden = False
Case "MSC": Range("A5541:A5672").EntireRow.Hidden = False
Case "Short": Range("A5673:A5768").EntireRow.Hidden = False
Case "DDE LP": Range("A5769:A5972").EntireRow.Hidden = False
Case "LLF STARTER": Range("A5973:A6112").EntireRow.Hidden = False
Case "MS": Range("A6113:A6988").EntireRow.Hidden = False
Case "SCE": Range("A6989:A7376").EntireRow.Hidden = False
End Select
End If
If Target.Address = "$C$7403" Then
Range("A7405:A8580").EntireRow.Hidden = True
Select Case Target.Text
Case "IM": Range("A7405:A8188").EntireRow.Hidden = False
Case "IZ": Range("A8189:A8388").EntireRow.Hidden = False
Case "XP": Range("A8389:A8580").EntireRow.Hidden = False
End Select
End If
If Target.Address = "$C$8605" Then
Range("A8607:A8698").EntireRow.Hidden = True
Select Case Target.Text
Case " ": Range("A8607:A8698").EntireRow.Hidden = False
End Select
End If
If Target.Address = "$C$8725" Then
Range("A8727:A9098").EntireRow.Hidden = True
Select Case Target.Text
Case "PV": Range("A8727:A8862").EntireRow.Hidden = False
Case "PE": Range("A8863:A8970").EntireRow.Hidden = False
Case "RF": Range("A8971:A9098").EntireRow.Hidden = False
End Select
End If
For Each icell In Range("B5:B9022").SpecialCells(xlCellTypeVisible)
If icell.Value = "0" Then
icell.Resize(4, 1).EntireRow.Hidden = True
End If
Next icell
Application.ScreenUpdating = True
End Sub
Bookmarks