Dave,
I tried your code in a new workbook and it worked fine for adding sheets,
the problem is I have a sheet set up and hidden and when they click a button
it makes this worksheet visible, copies it at the end of the other worksheets
then hides the original again and renames the copy, the date comes from a
cell on sheet1. When I included your code, I made some changes and it would
rename it but it wouldn't set the iCtr, it skipped it every time and made a
worksheet with a duplicate name, i.e: "01-01-06 CSB 18" RCP"; "01-01-06 CSB
18" RCP (2)";
"01-02-06 CSB 18" RCP"; "01-01-06 CSB 18" RCP". Then it would sort the
sheets and I ended up with "01-01-06 CSB 18" RCP"; "01-01-06 CSB 18" RCP";
"01-01-06 CSB 18" RCP (2)"; "01-02-06 CSB 18" RCP". I have included my
original code, but can't figure how to include your code to make it work.
Sub Macro1()
Dim myMonth As Integer
Dim myYear As Integer
Dim mytestdate As Date
Dim Q As Integer
Dim MySelect As Excel.Name
Dim WhatsWrong As String
Dim MyTempHold As Integer
Dim mytday As Integer
Dim myFileName As String
Dim XS As Integer
Dim blnCorrect As Boolean
blnCorrect = True
ActiveWorkbook.Unprotect Password:="csb"
Application.ScreenUpdating = False
Sheets("Create Pay Report").Visible = False
strMMs = "Create Pay Report"
If Excel.Range("SH") = "S" Then
mydate = Range("date")
strMM = Format(mydate, "mm-dd-yy")
Range("date2") = Range("date")
Range("date3") = Range("date")
Range("date3") = Format(mydate, "mm-dd")
If Range("date") > "" Then FirstSheet = strMM
Sheets("CSB Form 1257").Visible = True
Sheets("CSB Form 1257").Select
Sheets("CSB Form 1257").Copy After:=Sheets(Sheets.Count)
Sheets("CSB Form 1257").Visible = False
Sheets("CSB Form 1257 (2)").Select
ActiveSheet.Unprotect Password:="csb"
Range("BB62") = Sheets(Sheets.Count - 1).Range("BB62") + 1
ActiveSheet.Range("date1") = Range("date")
If ActiveSheet.Range("date1") = Sheets(Sheets.Count - 1).Range("date1")
Then
ActiveSheet.Range("SameDateNumber") = Sheets(Sheets.Count -
1).Range("SameDateNumber") + 1
Sheets("CSB Form 1257 (2)").Name = strMM & " " & "CSB" & " " &
Range("EighteentoEightyfour") & """" & " " & "RCP" & " " & "(" &
ActiveSheet.Range("SameDateNumber") & ")"
Else: Sheets("CSB Form 1257 (2)").Name = strMM & " " & "CSB" & " " &
Range("EighteentoEightyfour") & """" & " " & "RCP"
End If
"I have code here to format certain cells in the new sheet."
strMMs = strMM
ActiveSheet.Protect Password:="csb", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWorkbook.Protect Password:="csb"
ActiveWorkbook.Save
End Sub
"Dave Peterson" wrote:
> First, I would add the sheet whereever I wanted and then just sort the sheets
> after I'm done.
>
> Chip Pearson has some code at:
> http://www.cpearson.com/excel/sortws.htm
> that you can use.
>
> But this kind of routine can be used to add another sheet:
>
> Option Explicit
> Sub testme()
>
> Dim mySFX As String
> Dim myPFX As String
> Dim wks As Worksheet
> Dim iCtr As Long
> Dim myStr As String
>
> '01-01-06 CSB 18" RCP
>
> mySFX = " CSB 18"" RCP"
> myPFX = Trim(InputBox(prompt:="Enter date: mm-dd-yy"))
>
> If Len(myPFX) <> 8 Then
> Beep
> MsgBox "Try again later!"
> Exit Sub
> End If
>
> Set wks = Worksheets.Add(after:=Worksheets(Worksheets.Count))
> iCtr = 0
> Do
> If iCtr = 0 Then
> myStr = ""
> Else
> myStr = " (" & iCtr & ")"
> End If
> On Error Resume Next
> wks.Name = myPFX & mySFX & myStr
> If Err.Number <> 0 Then
> Err.Clear
> Else
> Exit Do
> End If
> On Error GoTo 0
> iCtr = iCtr + 1
> Loop
>
> Call SortTheSheets
>
> End Sub
> Sub SortTheSheets()
> 'put Chip Pearson's code here
> End Sub
>
> jnf40 wrote:
> >
> > Hi all,
> >
> > I have a workbook that will add worksheets and name the worksheet depending
> > on the buttons clicked by the user and the date entered by the user. The
> > worksheet names will be something like "01-01-06 CSB 18" RCP" if the same
> > date is used the next worksheet will be "01-01-06 CSB 18" RCP (2)" and so on.
> > If the user changes the date to "01/02/06" then the next worksheet name would
> > be
> > "01-02-06 CSB 18" RCP" and so on. The problem I have is that if I then go
> > back to the date "01/01/06" I get "Run-time error '1004': Cannot rename a
> > sheet to the same name as another sheet, a referenced object library or a
> > workbook referenced by Visual Basic."
> > Is there a way to have it check for this and then add the new worksheet and
> > it's name would then be
> > "01-01-06 CSB 18" RCP (3)" and place it in between "01-01-06 CSB 18" RCP
> > (2)" and "01-02-06 CSB 18" RCP"?
>
> --
>
> Dave Peterson
>
Bookmarks