View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default copy worksheet with formulas and vba function

Change:
<BEGIN VBA CODE
Worksheets(Array("Work Order", "Packing Slip", "Invoice", "Release",
"Shipping", "Master Price List")).Copy

Set wkbk = ActiveWorkbook
For Each sh In wkbk.Worksheets

With sh.UsedRange
.Value = .Value
End With

Next
<END VBA CODE

To
sName = ActiveWorkbook.FullName
sName = Left(sName,len(sName)-4)
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs sName & "AA.xls"
Application.DisplayAlerts = True
v = "#Work Order##Packing Slip##Invoice##Release#" _
& "#Shipping##Master Price List#"
Set bk = Workbooks.Open SName & "AA.xls"
for each sh in bk.Worksheets
if instr(1,v,"#" & sh.Name & "#",vbTextCompare) = 0 then
Application.DisplayAlerts = False
sh.delete
application.DisplayAlerts = True
end if
Next

--
Regards,
Tom Ogilvy

"Gixxer_J_97" wrote in message
...
hi all

thanks to everyone for their help so far!

i have a vba project in excel that saves several sheets to a new workbook.
thus far i was saving only the values using

<BEGIN VBA CODE
Worksheets(Array("Work Order", "Packing Slip", "Invoice", "Release",
"Shipping", "Master Price List")).Copy

Set wkbk = ActiveWorkbook
For Each sh In wkbk.Worksheets

With sh.UsedRange
.Value = .Value
End With

Next
<END VBA CODE

almost everything seemed to work perfectly, however some cells in the

saved
(new) workbook will have #Name? instead of the value of the cell of the
parent worksheet.

the cells that generate the #Name? after being copied have the following
formula in the master sheet cell

<BEGIN EXCEL FORMULA
=IF(ISBLANK(C27),"",chooselotnumber(VLOOKUP(C27,'M aster Price
List'!$B$7:$O$44,10,FALSE)))
<END EXCEL FORMULA

the chooselotnumber function checks to see if there are multiple lot

numbers
for the choosen product. if there is only one, it returns that one. o/w

it
will prompt the user for which lot number to use.

i would like to change my code to copy the formulas instead of just the
values. (the new workbook will need to be opened and updated, so having

the
formulas there is a great help) also, i have a function in the master
workbook that is used in some of the calculations.

how do i modify the above code to copy the formulas, ( .FormulaR1C1 =
.FormulaR1C1 ?) and also copy the function i use to the new workbook?

thanks!

J