Hide sheet via codename

  • Thread starter Thread starter chris_j_adams
  • Start date Start date
C

chris_j_adams

Hi,

Is there a method for hiding a sheet via the codename, when the
codename is not hard coded but derived from cells in a spreadsheet?

Eg. I would like to loop through cells which contain codenames. If
the codename is ticked, then I want to run a sub to hide that sheet,
using that codename. By way of illustration:

Set rng = Sheets("Lookups").Range("A1:A20")
For Each cell In rng
Set x = ThisWorkbook.VBProject.VBComponents(cell)
x.Visible = xlSheetHidden
Next cell

I'm not sure why this throws up error 438 at the line:
x.visible = xlSheetHidden

I've tried various permuations but can't get it to work. Many thanks in
advance if anyone kindly provides a solution.

Regards,
Chris Adams
 
Not sure what you are trying to do, but the VBProject.VBComponents is for
the components of VBA IDE.
You cannot hide them.

Are you trying to hide some worksheet(s) ?

NickHK
 
I'm not sure why this throws up error 438 at the line:
x.visible = xlSheetHidden

Because x is a VBComponent not a worksheet.

Sub a()
Dim x As VBComponent
Dim ShName As String
Set x = ThisWorkbook.VBProject.VBComponents("CodeName")
ShName = x.Properties("Name")
Worksheets(ShName).Visible = xlSheetHidden
End Sub


--
Jim
| Hi,
|
| Is there a method for hiding a sheet via the codename, when the
| codename is not hard coded but derived from cells in a spreadsheet?
|
| Eg. I would like to loop through cells which contain codenames. If
| the codename is ticked, then I want to run a sub to hide that sheet,
| using that codename. By way of illustration:
|
| Set rng = Sheets("Lookups").Range("A1:A20")
| For Each cell In rng
| Set x = ThisWorkbook.VBProject.VBComponents(cell)
| x.Visible = xlSheetHidden
| Next cell
|
| I'm not sure why this throws up error 438 at the line:
| x.visible = xlSheetHidden
|
| I've tried various permuations but can't get it to work. Many thanks in
| advance if anyone kindly provides a solution.
|
| Regards,
| Chris Adams
|
 
That did the trick - many thanks for your replies Nick and Jim.
Especially helpful Jim because I'd tried to use .properties in various
ways and I couldn't find an applicable syntax in the VBA help or
through the archives of this group.

Thanks again for your time - much appreciated,
Chris Adams
 

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

Back
Top