View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Spreadsheet Solutions[_3_] Spreadsheet Solutions[_3_] is offline
external usenet poster
 
Posts: 31
Default Saving worksheets to new workbook

Jim;

For a Dutchmen, it looked a little complicated, but in general, this is what
I usually do an what you could try.

Build a string based on the contents of cells A4 and K10 in worksheet "Calc"
in workbook "Main.xls".
It seems to me that you do so.
I usually call the string fName .

Delete the worksheets you don't need from the workbook your working on.
You could do so with Worksheets(1).delete where 1 is the index number for
the first worksheet.
You could also try Worksheets("Name").delete
Use DisplayAlerts; This prevents you from having to answer dialogs about
deleting sheets.
It will look a little like this:

Application.DisplayAlerts = False

Worksheets(1).delete
Worksheets("Name").delete
Application.DisplayAlerts = True

Save the rest of what is left with the new filename eg the string you build.

ThisWorkbook.SaveAs Filename:=fName

Now the old workbook isn't modified, but a new workbook is saved with the
name you specified and the sheets you need.

I hope I understood what you wrote and hope you'll find a solution in what I
described.

PS: Don't forget to create a back-up workbook. Testing is essential in al
circumstances !!

--
--
Regards;
Mark Rosenkrantz
--
Spreadsheet Solutions
Uithoorn
Netherlands (Those who live some 18 feet below sea level)
--
E:
W:
www.spreadsheetsolutions.nl
--

"bigjim" wrote in message
...
I want to save three worksheets in my main workbook to a new workbook to be
named from variables in "Main.xls". For Example: I have 3 worksheets in
"main.xls" called "ticket", "Job Report", and "W-15". I need to create a
new
workbook named from the contents of cells A4 and K10 in worksheet "Calc"
in
workbook "Main.xls" and then save copies of "ticket", "job report" and
"w-15"
in this new workbook. So, if cell a4 had "AS011" in it and K10 had
"Liberty"
in it, the new file would be named "As011Liberty.xls" and contain three
sheets named "ticket", "Job Report", and "W-15". I am working in Excell
2003
and this is what I have so far, but I can't seem to get it to work:

Dim strappend As String
Dim strpath As String
Dim str3 As String
Dim str4 As String
strappend = ActiveSheet.Range("a4")
strpath = "c:\field tickets\"
str3 = ActiveSheet.Range("k10")

fsavename = strpath & strappend & str3 & ".xls"
If Dir(fsavename) < "" Then
fsavename = strpath & strappend & str3 & "a.xls"

End If
If Dir(fsavename) < "" Then
fsavename = strpath & strappend & str3 & "b.xls"
End If

If Dir(fsavename) < "" Then
fsavename = strpath & strappend & str3 & "c.xls"
End If

ActiveWorkbook.Sheets("Ticket").SaveAs fsavename
ActiveWorkbook.Close False

ActiveWorkbook.Sheets("Job Report").Select
Sheets("Job Report").Copy befo=Workbooks("fsname").Sheets("Ticket")

ActiveWorkbook.Sheets("W-15").Select
Sheets("W-15").Copy befo=Workbooks("fsname").Sheets("Job Report")

I would appreciate any help I could get.

Thanks,

Jim