Hi there.
I have a row with headers (Row 2) and each header is 3 columns in length with information about the header we can call "cities" for now. I have a userform where a user selects which cities he/she wants to view the data for. What i would like is to be able to hide all other cities that the user did not check. I currently have code that does what i need it to however, it is very slow in calculating and takes 10 seconds to load. Looking to hopefully find an alternative to shorten that calculation time.
Private Sub CommandButton2_Click()
Dim icell As Range, siterng As Range, rng1 as Range
Range("SiteList").EntireColumn.Hidden = True
Set rng1 = Union(Range("I:I"), Range("L:L"), Range("O:O"), Range("R:R"), Range("U:U"), Range("X:X"), Range("AA:AA"), Range("AD:AD"), Range("AG:AG"), Range("AJ:AJ"))
For Each icell In rng1
Select Case icell.Column
Case Is = 9
If CheckBox33.Value = True Then
Set siterng = Range(icell, icell.Offset(0, -2))
siterng.EntireColumn.Hidden = False
End If
Case Is = 12
If CheckBox32.Value = True Then
Set siterng = Range(icell, icell.Offset(0, -2))
siterng.EntireColumn.Hidden = False
End If
Case Is = 15
If CheckBox31.Value = True Then
Set siterng = Range(icell, icell.Offset(0, -2))
siterng.EntireColumn.Hidden = False
End If
Case Is = 18
If CheckBox30.Value = True Then
Set siterng = Range(icell, icell.Offset(0, -2))
siterng.EntireColumn.Hidden = False
End If
Case Is = 21
If CheckBox29.Value = True Then
Set siterng = Range(icell, icell.Offset(0, -2))
siterng.EntireColumn.Hidden = False
End If
Case Is = 24
If CheckBox28.Value = True Then
Set siterng = Range(icell, icell.Offset(0, -2))
siterng.EntireColumn.Hidden = False
End If
Case Is = 27
If CheckBox37.Value = True Then
Set siterng = Range(icell, icell.Offset(0, -2))
siterng.EntireColumn.Hidden = False
End If
Case Is = 30
If CheckBox36.Value = True Then
Set siterng = Range(icell, icell.Offset(0, -2))
siterng.EntireColumn.Hidden = False
End If
Case Is = 33
If CheckBox35.Value = True Then
Set siterng = Range(icell, icell.Offset(0, -2))
siterng.EntireColumn.Hidden = False
End If
Case Is = 36
If CheckBox34.Value = True Then
Set siterng = Range(icell, icell.Offset(0, -2))
siterng.EntireColumn.Hidden = False
End If
End Select
Next icell
Application.ScreenUpdating = True
End Sub
Any help is appreciated
Bookmarks