Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Button to copy sheet, rename sheet sequencially.

4 views
Skip to first unread message

foxgguy2005

unread,
Jun 14, 2005, 1:42:03 AM6/14/05
to

I have a Setup sheet, which has a button to creat a new sheet, which
actually copies a tamplet. When i click this button it calls the new
tab "Tamplet (2)"
Is there a sub i can put in the copy routine to auto-rename the tabs
sequencially?
Note number of tabs is based upon how many times the user clicks the
new page button.

Thanks!
~Josh


--
foxgguy2005
------------------------------------------------------------------------
foxgguy2005's Profile: http://www.excelforum.com/member.php?action=getinfo&userid=23663
View this thread: http://www.excelforum.com/showthread.php?threadid=378885

Patrick Molloy

unread,
Jun 14, 2005, 3:10:02 AM6/14/05
to
Option Explicit

Public Sub AddSheets()
Dim ws As Worksheet
Set ws = Worksheets("template")
ws.Copy Worksheets(1)
SetSheetName Worksheets(1)
End Sub
Private Sub SetSheetName(ws As Worksheet)
On Error Resume Next
Dim sname As String
Dim index As Long
index = 0
Do
Err.Clear
index = index + 1
sname = "template" & Format$(index, "000")
ws.Name = sname
Loop While Err.Number <> 0
End Sub

foxgguy2005

unread,
Jun 14, 2005, 10:25:35 AM6/14/05
to

I tried putting this into my command button as follows:
but it does not work, i'm not quite sure what i'm doing wrong here?
Thanks!

Code:
--------------------
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = Worksheets("Tamplet")


ws.Copy Worksheets(1)
SetSheetName Worksheets(1)
End Sub
Private Sub SetSheetName(ws As Worksheet)
On Error Resume Next
Dim sname As String
Dim index As Long
index = 0
Do
Err.Clear
index = index + 1

sname = "Tamplet" & Format$(index, "000")


ws.Name = sname
Loop While Err.Number <> 0

End Sub

--------------------

foxgguy2005

unread,
Jun 14, 2005, 11:44:15 PM6/14/05
to

anyone help me out on this one, much appreaciate it!

Dave Peterson

unread,
Jun 15, 2005, 10:04:13 AM6/15/05
to
I put a commmandbutton on a worksheet, double clicked on that commandbutton and
pasted your code.

It worked right out of the box.

If you're using xl97, try changing the commandbutton's .takefocusonclick
property to false.

If that's not it, what happened when you tried it?

--

Dave Peterson

foxgguy2005

unread,
Jun 16, 2005, 8:32:28 PM6/16/05
to

yeah you know it works for mee to actually, i'm retarded, lol.

Thanks man, tweaked the code for only 2 index numbers and to not
include the tamplet... works like a charm, you are the MAN!

Dave Peterson

unread,
Jun 16, 2005, 10:45:26 PM6/16/05
to
I'd say Patrick was the man!

--

Dave Peterson

foxgguy2005

unread,
Jun 17, 2005, 12:02:33 AM6/17/05
to

heh yeah, actually thats what i meant! :-P
Thanks big pat!
you too dave, for making me check myself.

foxgguy2005

unread,
Jun 17, 2005, 12:07:50 AM6/17/05
to

an another quick note is there a way to copy them before a certain
sheet
IE: Before:=Sheets("Setup")

Dave Peterson

unread,
Jun 17, 2005, 8:41:17 AM6/17/05
to
Yep.

Option Explicit
Public Sub AddSheets()

Dim ws As Worksheet
Set ws = Worksheets("template")
ws.Copy _
before:=Worksheets("setup")
SetSheetName ActiveSheet


End Sub
Private Sub SetSheetName(ws As Worksheet)
On Error Resume Next
Dim sname As String
Dim index As Long
index = 0
Do
Err.Clear
index = index + 1

sname = "template" & Format$(index, "000")


ws.Name = sname
Loop While Err.Number <> 0
End Sub


When you copy a sheet, it becomes the activesheet. So we just pass the
activesheet to the "setSheetName" subroutine.

--

Dave Peterson

0 new messages