In un modulo di codice standard:
Public Sub m()
Dim wk As Workbook
Dim sh As Worksheet
Set wk = Workbooks.Add
Application.ScreenUpdating = False
With ThisWorkbook
For Each sh In .Worksheets
.Activate
Sheets(sh.Name).Copy _
After:=Workbooks(wk.Name).Sheets(wk.Sheets.Count - 1)
Next
End With
Application.ScreenUpdating = True
wk.SaveAs "C:\tuaCartella\tuoFile.xls"
wk.Close
Set sh = Nothing
Set wk = Nothing
End Sub
Cambia i riferimenti con i tuoi.
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/
Ciao Grazie per la tua risposta!! ma applicando il tuo codice mi
succede questo! mi creai il file con tutti i formati ma purtroppo
porta appresso tutte le formule (quindi chiudendo il file matrice ed
aprendo questo mi dà tutti #RIF! come valore delle formule, io ho
bisogno invece dei valori.
poi i tre fogli di default non me li cancella sul nuovo file,, quindi
mi trovo i primi due fogli in bianco poi la serie dei miei foglio
(come ti dicevo prima) e poi il terzo foglio, anche esso vuoto!!
Il tuo codice è, scusami, inguardabile
e non ho capito nulla.
Se(se) tutto quello che vuoi è una copia
del tuo file con i fogli che mantengono
la formattazione e non formule/funzioni,
prova:
Public Sub m()
Dim sh As Worksheet
Application.ScreenUpdating = False
With ThisWorkbook
'salvo l'originale
.Save
'elimino le funzioni/formule dai fogli
For Each sh In .Worksheets
sh.Range(sh.UsedRange.Address).Value = _
sh.Range(sh.UsedRange.Address).Value
Next
'salvo il file(path e nome diversi dall'originale)
.SaveAs "C:\tuaCartella\tuoFileX.xls"
End With
Application.ScreenUpdating = True
Set sh = Nothing
End Sub
Ti troverai con il file originale salvato con funzioni/formule
ed il secondo con solo i valori.
---------------------------
Mauro Gamberini
sh.Range(sh.UsedRange.Address)????
non basta sh.UsedRange.value?
ciao
r
Ma certo che sě!
Ero partito per un'altra strada
e ho postato una cosa *ibrida*. ;-)
---------------------------
Mauro Gamberini
beh ... peggio se eri in moto :-)
ciao
r