Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11
Default (Name) vs Name properies for a worksheet

How do I change and address/access the "(Name)" property of a sheet with VBA;
this property is only 'visible' in the VBA properties window, it is not
visible in the object browser?

This property is not the same as "Name" which is also shown on the tab.

My code creates sheets during a simulation. Currently the user can delete
the programatically created sheets, but this will also delete any user
created sheets. I want to use the "(Name)" property to control which sheets
are deleted.

Pseudo code....

if sheet.name < "KeepThisSheet0" And sheet.name < "KeepThisSheet1" then
sheet.delete


Also, what are the differences between the objects "Sheets" and "Worksheets"


Windows XP, Excel 2007

Thank you all very much!

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default (Name) vs Name properies for a worksheet

The Name property of a worksheet is what is displayed on the tabs and
is how the sheet is known to Excel (as in formulas). In the VBA
editor, the (Name) refers to the CodeName, which is how the sheet is
known internally to VBA. You can get the CodeName from a worksheet
object:

Debug.Print Worksheets("Sheet One").CodeName

but not the other way around (at least not directly). In most cases,
you can use the object's code name to prevent problems that might
arise if a user changes a sheet's name:

Worksheets("Sheet One").Range("A1").Value = 1234
' or
Sheet1.Range("A1").Value = 1234

The "Sheets" object contains all the sheets of all types (worksheets,
chart sheets, macro sheets, dialog sheets) while Worksheets contains
only worksheets.

Cordially,
Chip Pearson
Microsoft Most Valuable Professional
Excel Product Group, 1998 - 2009
Pearson Software Consulting, LLC
www.cpearson.com
(email on web site)




On Mon, 5 Jan 2009 13:30:06 -0800, rogge
wrote:

How do I change and address/access the "(Name)" property of a sheet with VBA;
this property is only 'visible' in the VBA properties window, it is not
visible in the object browser?

This property is not the same as "Name" which is also shown on the tab.

My code creates sheets during a simulation. Currently the user can delete
the programatically created sheets, but this will also delete any user
created sheets. I want to use the "(Name)" property to control which sheets
are deleted.

Pseudo code....

if sheet.name < "KeepThisSheet0" And sheet.name < "KeepThisSheet1" then
sheet.delete


Also, what are the differences between the objects "Sheets" and "Worksheets"


Windows XP, Excel 2007

Thank you all very much!

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default (Name) vs Name properies for a worksheet

That (Name) property is called the codename.

You can manually change the codename by:
Open the workbook
Go into the VBE (alt-f11)
Show the project explorer (ctrl-r)
Select the workbook's project
Select the sheet you want
Show the properties window (F4)
And typing the new codename into that (Name) property.

You can refer to the codename in code with something like:

dim sh as object 'any kind of sheet
for each sh in activeworkbook.sheets
Select case lcase(sh.codename)
case is = lcase("keepthissheet0"), lcase("keepthissheet1")
'do nothing
case else
sh.delete
end select
next sh

Workbooks can contain worksheets, chartsheets, macrosheets, international macro
sheets, and dialogsheets.

I'm not sure why you want to change the codename via code, but if the user
allows programmatic access (tools|macro|security|trusted publishers tab in
xl2003 menus), you can use something like:

dim sh as object 'any old sheet type
set sh = activeworkbook.sheets("aaa")
ThisWorkbook.VBProject.VBComponents(sh.codename).N ame = "NewCodeName"
'or
ThisWorkbook.VBProject.VBComponents(sh.CodeName) _
.Properties("_CodeName").Value = "NewCodeName2"

But this won't work if the user doesn't have that setting the way you need it.



rogge wrote:

How do I change and address/access the "(Name)" property of a sheet with VBA;
this property is only 'visible' in the VBA properties window, it is not
visible in the object browser?

This property is not the same as "Name" which is also shown on the tab.

My code creates sheets during a simulation. Currently the user can delete
the programatically created sheets, but this will also delete any user
created sheets. I want to use the "(Name)" property to control which sheets
are deleted.

Pseudo code....

if sheet.name < "KeepThisSheet0" And sheet.name < "KeepThisSheet1" then
sheet.delete

Also, what are the differences between the objects "Sheets" and "Worksheets"

Windows XP, Excel 2007

Thank you all very much!


--

Dave Peterson
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,836
Default (Name) vs Name properies for a worksheet

This is how I do it:

Sub DelAllWorksheets()
Application.DisplayAlerts = False
Dim sh As Worksheet

For Each sh In ActiveWorkbook.Worksheets
If InStr(1, sh.Name, "Firms") Then
sh.Select False
Else
sh.Delete
End If
Next sh
Application.DisplayAlerts = True

Sheets("Firms, Import").Activate
Range("A1:B1").Select

End Sub

That macro deletes all sheets that don't have "Firm" on the tab. Maybe you
can modify that to get the results you seek.

HTH,
Ryan---

--
RyGuy


"Dave Peterson" wrote:

That (Name) property is called the codename.

You can manually change the codename by:
Open the workbook
Go into the VBE (alt-f11)
Show the project explorer (ctrl-r)
Select the workbook's project
Select the sheet you want
Show the properties window (F4)
And typing the new codename into that (Name) property.

You can refer to the codename in code with something like:

dim sh as object 'any kind of sheet
for each sh in activeworkbook.sheets
Select case lcase(sh.codename)
case is = lcase("keepthissheet0"), lcase("keepthissheet1")
'do nothing
case else
sh.delete
end select
next sh

Workbooks can contain worksheets, chartsheets, macrosheets, international macro
sheets, and dialogsheets.

I'm not sure why you want to change the codename via code, but if the user
allows programmatic access (tools|macro|security|trusted publishers tab in
xl2003 menus), you can use something like:

dim sh as object 'any old sheet type
set sh = activeworkbook.sheets("aaa")
ThisWorkbook.VBProject.VBComponents(sh.codename).N ame = "NewCodeName"
'or
ThisWorkbook.VBProject.VBComponents(sh.CodeName) _
.Properties("_CodeName").Value = "NewCodeName2"

But this won't work if the user doesn't have that setting the way you need it.



rogge wrote:

How do I change and address/access the "(Name)" property of a sheet with VBA;
this property is only 'visible' in the VBA properties window, it is not
visible in the object browser?

This property is not the same as "Name" which is also shown on the tab.

My code creates sheets during a simulation. Currently the user can delete
the programatically created sheets, but this will also delete any user
created sheets. I want to use the "(Name)" property to control which sheets
are deleted.

Pseudo code....

if sheet.name < "KeepThisSheet0" And sheet.name < "KeepThisSheet1" then
sheet.delete

Also, what are the differences between the objects "Sheets" and "Worksheets"

Windows XP, Excel 2007

Thank you all very much!


--

Dave Peterson

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11
Default (Name) vs Name properies for a worksheet

Thank you all very much for the detailed information. It is exactly what i
wanted and needed. too bad i could only say that one answer was correct.

Also, is there any advantage to using Worksheets over Sheets to refer to
Worksheets? either performance, code legibility, experience, etc?

Currently i am using Sheets and referring only to worksheets.

-rogge


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
automatically appending newly added data on worksheet to a master list worksheet tabylee via OfficeKB.com Links and Linking in Excel 0 December 17th 09 04:24 PM
plot graph from multiple worksheet as embedded chart object on every worksheet [email protected] Charts and Charting in Excel 3 August 24th 06 07:26 PM
plot graph from multiple worksheet as embedded chart object on every worksheet [email protected] Excel Discussion (Misc queries) 2 August 24th 06 05:26 PM
Upload multiple text files into 1 excel worksheet + put the filename as the first column in the worksheet Aster Excel Worksheet Functions 3 March 12th 06 09:58 AM
Attaching a JET database to an Excel Worksheet OR storing large binary data in a worksheet Ant Waters Excel Programming 1 September 3rd 03 11:34 AM


All times are GMT +1. The time now is 11:54 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"