A family of Microsoft spreadsheet software with tools for analyzing, charting, and communicating data.
Hi,
in a regular module:
1st vba macro, visible All sheets
2nd vba macro, visible only two sheets
Option Explicit
'Feb 09, 2016
Dim sh As Worksheet
Const sN$ = "Control"
Const sCel$ = "A1" '<< sheet name, in cell A1
Sub Visible_ALL()
For Each sh In Sheets
sh.visible = True
Next
Sheets(sN).Select
End Sub
Sub Visible_Two_Shts()
Sheets(sN).Select
For Each sh In ThisWorkbook.Sheets
If sh.Name = Sheets(sN).Range(sCel).Value Or sh.Name = sN Then
sh.visible = True
Else
sh.visible = xlSheetVeryHidden
End If
Next
End Sub
XXXXXXXXXXXX
instead of visible Two sheets, macro (in a regular module)
i would suggest a 'private sub change event'
Right click on sheet tab (Control sheet), select View Code and paste in the following:
Private Sub Worksheet_Change(ByVal Target As Range)
Const sN$ = "Control"
Const sCel$ = "A1"
If Not Intersect(Target, Range(sCel)) Is Nothing Then
For Each sh In ThisWorkbook.Sheets
If sh.Name = Sheets(sN).Range(sCel).Value Or sh.Name = sN Then
sh.visible = True
Else
sh.visible = xlSheetVeryHidden
End If
Next
End If
End Sub
Save the file > Close > reopen the file