Procedura  per salvare un solo foglio di una cartella di lavoro.   (26/05/03)

Questo esercizio è applicabile ogni qualvolta si voglia salvare un unico foglio (non tutta la cartella) di lavoro. Spesso usiamo Excel per gestire una piccola amministrazione che contempli l'emissione di fatture e/o anche di documenti di trasporto (DDT). Necessità comune ad entrambi i documenti, al di là delle routine usate per la registrazione degli stessi in appositi fogli archivio, è quella di poter salvare una copia del documento, e solo quello. In questo modo, oltre a disporre di un file .xls di dimensioni più piccole rispetto alla dimensione della cartella usata per la gestione dell'attività, potremo gestire una copia di una fattura, per rivederla per consultarla e/o per ristamparla. La maniera più semplice è questa routine che apre la classica finestra "Salva con nome", in cui potremo definire noi il nome e la cartella dove salvare la copia della fattura. Questa routine la abbineremo ad un pulsante "Salva Fattura" che terremo sul foglio adibito alla compilazione della fattura:

Sub Salvafattura()

'copiamo il foglio usando il nome del foglio, in questo esempio "Fatture", e verrà creato un 'nuovo foglio che sarà una copia del foglio Fatture:
Sheets("Fatture").Copy

'apriamo la finestra "Salva con nome". Dopo che avremo assegnato il nome e selezionata la cartella di destinazione, premeremo il pulsante "Salva"
Application.Dialogs(xlDialogSaveAs).Show

'la copia del solo foglio che abbiamo copiato, è stata salvata, e a questo punto chiudiamo 'il foglio-copia attualmente in vista a video, ritornando al foglio originale della cartella di 'lavoro.
ActiveWindow.Close
End Sub

Come vedete, tre semplici righe di istruzione ci hanno aiutato. La copia ora sarà disponibile da consultare quando vorremo. Nella routine sotto invece consideriamo una variante più "automatizzata" che ci consentirà di saltare la presentazione della finestra "Salva con nome", in quanto sia il nome con il quale salvare la copia della fattura, sia il percorso, lo assegneremo usando il codice vba. Come nome sceglieremo la soluzione più ovvia : il numero fattura che inevitabilmente assegneremo alla fattura, e come percorso useremo una cartella precedentemente stabilita. vediamo la routine, come sempre associata ad un pulsante posto sul foglio fattura:

Sub SalvafatturaAut()
Dim X As String
'questa variabile assimila il dato che è in una cella, per prendere il nome,
'con cui salvare il solo foglio, io ho messo la A1, voi metterete la cella che porta il numero 'della fattura, vedi sotto

X = "Fattura" & Range("A1").Value
Sheets(1).Copy
'creo un nuovo foglio copia del foglio 1 (come esempio)
'
queste sotto sono le istruzioni in cui si deve fornire il percorso, io ho messo C:\Temp, voi 'metterrete la vostra cartella scelta per contenere le copie fatture:
ActiveWorkbook.SaveAs Filename:="C:\Temp\" & X & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWindow.Close
End Sub

E la copia verrà salvata in C:\Temp con il nome : Fatturanumerodellafattura.

 

Buon lavoro.

prelevato sul sito http://ennius.interfree.it