Macro to hide worksheet based upon text in the name

J

Joe M.

Is it possible to have a macro that hides worksheets based upon text
contained or not contained in the worksheet name? Suppose i have several
worksheets but want to hide ony the ones that don't have the text "HOLD" in
the name;

worksheet names:
Data_HOLD
Data Selection_HOLD
etc....
or maybe base it upon the WS tab color....

Thanks,
Joe M.
 
M

Mike H

Hi,

This will hide all worksheets with Hold anywhere in the name

Sub Hide_shts()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If InStr(1, ws.Name, "Hold", vbTextCompare) Then
ws.Visible = False
End If
Next
End Sub

--
Mike

When competing hypotheses are otherwise equal, adopt the hypothesis that
introduces the fewest assumptions while still sufficiently answering the
question.
 
J

Joe M.

Thanks. But I have discovered that I will have to rename some other sheets
for this to work and it will affect some macros. What about by the WS tab
color? Tis will be easier for me. Sorry for not being sure earlier.

Thx,
Joe M.
 
M

Mike H

Hi,

This will hide sheets with red tabs

Sub Hide_shts()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Tab.Color = 255 Then
ws.Visible = False
End If
Next
End Sub
--
Mike

When competing hypotheses are otherwise equal, adopt the hypothesis that
introduces the fewest assumptions while still sufficiently answering the
question.
 
J

Joe M.

I tried with several WS with red tabs but it only hides one. I double checked
to make sure red was selected. What is wrong?

Thanks,

Joe M.
 
D

Don Guillett

I just tested Mikes code successfully. Are they the same color and in the
same workbook?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top