I am trying to create a Macro to hide unnecessary Columns. I already created a Macro to hide unnecessary Rows which is functioning normally. I attempted to use similar coding for the Columns as I used for the Rows, but I am not getting the desired results.
My picture of the Worksheet would not upload.
Due to other data I always want to show Columns A to M. I want to use the Value in H2 (Weeks - merged cell with I2) to determine if Columns N to AE should be hidden. I am getting the desired result of all Columns showing when H2 is 0 and 30+. When Weeks is 1 to 29 Columns A to AE are hidden - not desired. When Weeks is 1 to 12 Columns N to AE should be hidden, Weeks is 13 Columns O to AE should be hidden, Weeks is 14 Columns P to AE should be hidden, etc.
Here is the code I created. I know it is not efficient, but I could not figure out how to select Rows or Columns using a Variable so I used numerous Else Ifs. My first goal is to get this functional then I am happy cleaning up the code.
Sub HideColumns()
Dim Weeks As Integer
'Dim HiddenColumns As Range
Weeks = Range("$H$2").Value
'HiddenColumns = Weeks + 10
Columns("A:AE").Select
Selection.EntireColumn.Hidden = False
If Weeks > 0 Then
' Columns("HiddenColumns:AE").Select
' If ((Weeks > 0) And (Weeks <= 12)) Then
If Weeks = 12 Then
'Columns("N:AE").Select
Columns("N:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 13 Then
Columns("O:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 14 Then
Columns("P:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 15 Then
Columns("Q:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 16 Then
Columns("R:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 17 Then
Columns("S:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 18 Then
Columns("T:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 19 Then
Columns("U:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 20 Then
Columns("V:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 21 Then
Columns("W:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 22 Then
Columns("X:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 23 Then
Columns("Y:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 24 Then
Columns("Z:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 25 Then
Columns("AA:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 26 Then
Columns("AB:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 27 Then
Columns("AC:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 28 Then
Columns("AD:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 29 Then
Columns("AE:AE").Select
Selection.EntireColumn.Hidden = True
ElseIf Weeks = 30 Then
Columns("N:AE").Select
Selection.EntireColumn.Hidden = False
Else
Columns("A:AE").Select
Selection.EntireColumn.Hidden = False
End If
End If
End Sub
I am using Excel Home and Student 2019. These are the first Macros I have tried to create. I used VB many years ago so I am familiar with some of the language, but the VBA references have been difficult to follow.
I wanted to go Line by Line through the code to get the Values being returned by each command to help determine what is wrong, but I wasn't able to get the Help Topics instructions to match up with my version of Excel. Help with Excel is not working. I was only able to use the Microsoft Community.
Any help is very much appreciated. Thank you.