Sono riuscito, finalmente, ad assemblare quello che serve a me.
La Macro qui riportata esegue i seguenti comandi (li inserisco nel caso dovessero servire a qualcun'altro e per i motori di ricerca):
+1 alla numerazione progressiva, stampa, salva con con nome in una directory specifica prelevando dati dalle celle e cancella i dati inseriti nel foglio che si usa come template.
Ecco la Macro:
Codice:
Sub Macro1()
a = Cells(2, "s")
a = a + 1
Cells(2, "s") = a
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Cartella = "C:\.........\" 'percorso completo su cui salvare, ricordarsi la barra inversa alla fine!
NomeFile = Range("S6").Value & Range("AJ1").Value & Range("S2").Value 'cella da cui prendere il nome file
NomeFoglio = "foglio1" 'nome esatto del foglio da copiare
If NomeFile = "" Then Exit Sub
If Right(NomeFile, 4) <> ".xls" Then NomeFile = NomeFile & ".xls"
Sheets(NomeFoglio).Copy
ActiveWorkbook.SaveAs Filename:=Cartella & NomeFile, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Windows("nome_file.xlsm").Activate
Sheets("foglio1").Select
Range( _
"S6:AH6,S7:AH7,S8:AH8,E11:G12,M11:M12,O11:O12,Q11:Q12,U18:AG18,T19:AG19,T20:AG20" _
).Select
Range("T20").Activate
Selection.ClearContents
Range("S6:AH6").Select
ActiveWorkbook.Save
End Sub
Nota bene per i quanti avessero intenzione di usare questa macro:
Macro per numerazione progressiva dove (2, "s") indica, nel mio caso, la cella "S2"
Codice:
Sub Macro1()
a = Cells(2, "s")
a = a + 1
Cells(2, "s") = a
Macro per la stampa
Codice:
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Macro per il salvataggio.
Personalizzare il percorso C:\...in base alle vostre esigenze e nel caso personalizzare "foglio1" in base alle vostre esigenze.
Codice:
Cartella = "C:\.........\" 'percorso completo su cui salvare, ricordarsi la barra inversa alla fine!
NomeFile = Range("S6").Value & Range("AJ1").Value & Range("S2").Value 'cella da cui prendere il nome file
NomeFoglio = "foglio1" 'nome esatto del foglio da copiare
If NomeFile = "" Then Exit Sub
If Right(NomeFile, 4) <> ".xls" Then NomeFile = NomeFile & ".xls"
Sheets(NomeFoglio).Copy
ActiveWorkbook.SaveAs Filename:=Cartella & NomeFile, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Macro Che cancella i dati dal foglio che si usa come template.
Questa macro l'ho ricavata semplicemente usando la funzione registra macro e le celle riportate qui dentro sono quelle relative al mio foglio e che sicuramente non andranno bene per voi.
Codice:
Windows("nome_file.xlsm").Activate
Sheets("foglio1").Select
Range( _
"S6:AH6,S7:AH7,S8:AH8,E11:G12,M11:M12,O11:O12,Q11:Q12,U18:AG18,T19:AG19,T20:AG20" _
).Select
Range("T20").Activate
Selection.ClearContents
Range("S6:AH6").Select
ActiveWorkbook.Save
Ora...per completare la macro e renderla perfetta mi manca solo una cosa.
Non riesco in nessun modo a trovare un comando che chiudi il file generato con il nome ricavato dalle celle che resta aperto e devo chiudere a mano!!
Ormai č una settimana che lavoro a questa macro e posso tranquillamente affermare che tramite google non c'č nulla che possa servirmi.
Nessuno che mi aiuti a rendere perfetta questa macro?
Michell