How can I automate the naming of worksheet tabs?

G

Guest

I create many worksheets for accounts that have the same format. I name the
worksheets by the account number that corresponds to the worksheet. How can
I automate the naming of the worksheet tabs? I am unable to put any type of
formula in the worksheet tab that would reference the account numbers.
 
P

Paul Sheppard

TJ said:
I create many worksheets for accounts that have the same format. I nam
the
worksheets by the account number that corresponds to the worksheet.
How can
I automate the naming of the worksheet tabs? I am unable to put an
type of
formula in the worksheet tab that would reference the account numbers.

TJ

The following Macro will rename the sheet tabs to whatever is in cel
A1, just adjust it to the cell where your Account Number is and it wil
rename the tabs to be the same as the account number

Sub update_all_names()
For Each sh In ActiveWorkbook.Sheets
sh.Activate
sh.Name = Cells(1, 1).Value <---(Cells (1,1) = A1, change as required
Next sh
End Su
 
G

Guest

Paul,

I have the same scenario however, I have established a list of the account
numbers on a seperate sheet. How can I refer back to that sheet using your
macro?
 
P

Paul Sheppard

MarcusA said:
Paul,

I have the same scenario however, I have established a list of th
account
numbers on a seperate sheet. How can I refer back to that sheet usin
your
macro?

Hi Marcus

Try this, sorry it is not my code so I cannot explain how it works

Sub namesheets()
Dim arr As Variant
arr = Range("a2:a10").Value
For i = LBound(arr) To UBound(arr)
Sheets(i + 1).Activate
Sheets(i).Name = arr(i, 1)
Next i
End Sub

You will need to change the range to suit your data, line 3 currentl
a2:a10
this will name the first 9 sheets in the workbook, so if you dont wan
the worksheet with your account numbers renamed make sure it is to th
right of those you do want to rename

Save your file with a different name and have a pla
 
G

Guest

Paul,
I copied your macro below and keep receiving a "debug" error....for some
reason its not liking tis part of the macro: sh.Name = Cells(2, 1).Value

Any suggestions???
Thanks!
 
D

Dave Peterson

Try this:

sh.Name = sh.Cells(2, 1).Value

But you should have a nice name in A2 of all the sheets--it has to be valid and
can't already be used.
 
G

Guest

Ok, now I get run-time error '91' - object variable or with block variable
not set

The data I need the tab to mimick is actually in cell B1....so I changed the
cell to (1, 2) and still get the same error message....it doesn't appear to
agree with the "For Each sh In ActiveWorkbook.Sheets" part of the macro
now.....

Thanks for your help!
 
D

Dave Peterson

Try this version:

Sub update_all_names2()
dim sh as worksheet
For Each sh In ActiveWorkbook.workSheets
sh.Name = sh.Cells(2, 1).Value
Next sh
End Sub

There's a difference between Sheets and Worksheets. If you have a chartsheet in
your workbook, then that older version would fail.

In fact, a little error checking is usually a nice thing:

Option Explicit
Sub update_all_names3()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
On Error Resume Next
sh.Name = sh.Cells(2, 1).Value
If Err.Number <> 0 Then
MsgBox sh.Name & " wasn't renamed!"
Err.Clear
End If
On Error GoTo 0
Next sh
End Sub


Ok, now I get run-time error '91' - object variable or with block variable
not set

The data I need the tab to mimick is actually in cell B1....so I changed the
cell to (1, 2) and still get the same error message....it doesn't appear to
agree with the "For Each sh In ActiveWorkbook.Sheets" part of the macro
now.....

Thanks for your help!
 

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

Similar Threads

Automate Insert Worksheet & Name 2
Naming Tabs 1
worksheet renames - specific 0
Automate printing 3
Worksheet tabs at top 2
Worksheet Tabs Dissapear 4
New Tabs 1
Worksheet tabs 2

Top