ricardo9316
New Member
- Joined
- Apr 17, 2014
- Messages
- 22
So I have a workbook with multiple sheets and my macro goes thru each tab and groups columns for each cell = 1 within a range. My problem is that I have only discovered how to do this for each tab by activating each tab by its name (ex. Sheet1.activate/group columns then sheet2.activate/group columns, etc) and not in a more efficient ways, say "For Each ws and for Each variable In Range then Group. Also, I am obligated in this way to choose a variable that its not repeated which its a pain to manage.
Example:
Sheets("Florida").Select
'Unhide Columns
Columns("E:AU").Select
Selection.Columns.Ungroup
Columns("E:AU").Select
Selection.EntireColumn.Hidden = False
'Hide Columns
Application.ScreenUpdating = False
Dim a As Range
For Each a In Range("E1:AU1")
If a.Value = 1 Then b.EntireColumn.Group
Next a
Application.ScreenUpdating = True
ActiveSheet.Outline.ShowLevels ColumnLevels:=1
'''''''followed by''''''''''''
Sheets("NFL").Select
'Unhide Columns
Columns("E:AU").Select
Selection.Columns.Ungroup
Columns("E:AU").Select
Selection.EntireColumn.Hidden = False
'Hide Columns
Application.ScreenUpdating = False
Dim b As Range
For Each b In Range("E1:AU1")
If b.Value = 1 Then b.EntireColumn.Group
Next b
Application.ScreenUpdating = True
ActiveSheet.Outline.ShowLevels ColumnLevels:=1
'''''''then the next market etc''''''''''''
Example:
Sheets("Florida").Select
'Unhide Columns
Columns("E:AU").Select
Selection.Columns.Ungroup
Columns("E:AU").Select
Selection.EntireColumn.Hidden = False
'Hide Columns
Application.ScreenUpdating = False
Dim a As Range
For Each a In Range("E1:AU1")
If a.Value = 1 Then b.EntireColumn.Group
Next a
Application.ScreenUpdating = True
ActiveSheet.Outline.ShowLevels ColumnLevels:=1
'''''''followed by''''''''''''
Sheets("NFL").Select
'Unhide Columns
Columns("E:AU").Select
Selection.Columns.Ungroup
Columns("E:AU").Select
Selection.EntireColumn.Hidden = False
'Hide Columns
Application.ScreenUpdating = False
Dim b As Range
For Each b In Range("E1:AU1")
If b.Value = 1 Then b.EntireColumn.Group
Next b
Application.ScreenUpdating = True
ActiveSheet.Outline.ShowLevels ColumnLevels:=1
'''''''then the next market etc''''''''''''