Condividi:        

[EXCEL-VBA] creare una macro per salvare documento

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[EXCEL-VBA] creare una macro per salvare documento

Postdi mofa » 13/11/08 20:08

Ho creato un foglio di calcolo con 2 pagine:
1) DDT
2) Fatture
ho poi creato la seguente macro (riferita al foglio DDT):

Sub salpulddt()
'
' salpulddt Macro
' Macro registrata il 25/02/2002 da pg
'
' Scelta rapida da tastiera: CTRL+d
'
Sheets("ddt.zau").Select
Sheets("ddt.zau").Copy
Range("B3:K59").Select
Selection.Locked = True
Selection.FormulaHidden = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("H19").Select
Windows("gestione6.xls").Activate
Range("D14").Select
Selection.ClearContents
Range("F14").Select
Selection.ClearContents
Range("C17:C54").Select
Selection.ClearContents
Range("I17:K54").Select
Selection.ClearContents
ActiveWindow.ScrollRow = 30
ActiveWindow.ScrollRow = 33
Range("D56:I59").Select
Selection.ClearContents
Range("G33").Select
ActiveWindow.ActivateNext
End Sub

questa lo assegnata ad un pulsante che premuto mi copia il solo foglio (in questo caso DDT) in un nuovo documento.
ora vorrei aggiungere alla macro, del codice per fare in modo che, oltre a copiarmi il l solo foglio in un nuovo documento, mi faccia aprire automaticamente la finestra "salva con nome" direttamente all'indirizzo:
-Documenti/ lavoro/DDT/2008-, e mi chiuda il foglio originale (quello con le due pagine) senza salvare le modifiche.

come posso fare?
posso aggiungere dei passaggi o devo rifarla da capo?

grazie.
mofa
Utente Senior
 
Post: 150
Iscritto il: 01/02/02 01:00

Sponsor
 


Re: [EXCEL-VBA] creare una macro per salvare documento

Postdi Anthony47 » 13/11/08 23:26

Per Dylan: anche in pc-facile abbiamo risolto gia' richieste di questo tipo, se google non le riporta nelle prime posizioni e' un limite di google :D

Per mofa:
Premesso che non ho fatto il reverse engineering della tua macro per vedere che cosa fa, se essa lascia attivo il nuovo file da salvare allora puoi aggiungere questo codice prima di End Sub:
Codice: Seleziona tutto
ChDir "C:\Documents and Settings\Nome-Utente\Documenti\lavoro\DDT2008-"
f_name = Application.GetSaveAsFilename(FileFilter:="Microsoft Excel file, *.xls")
ActiveWorkbook.SaveAs Filename:=f_name
ActiveWorkbook.Close
ThisWorkbook.Close SaveChanges:=False


Rispetto a quanto linkato da Dylan (dove il nome file viene inputato tramite inputbox), in questo modo l' utente lavora con l' interfaccia standard di windows.

Da quello che ho capito, il codice e' nel file che la macro chiude senza salvare le modifiche: e' quindi opportuno che lo salvi manualmente prima di attivare la macro.

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL-VBA] creare una macro per salvare documento

Postdi Tribuno » 13/11/08 23:40

Ciao,

io ho provato il codice e metterei, prima dell'istruzione
Windows("gestione6.xls").Activate
questo codice
Codice: Seleziona tutto
Path = "C:/Documenti/lavoro/DDT/2008/"
Fl = InputBox("Nome file", "Salva")
PathTot = Path & Fl
ActiveWorkbook.SaveAs Filename:=PathTot
ActiveWorkbook.Close

oppure l'istruzione f_name = Application.GetSaveAsFilename postata da Anthony, dopo, prima di End Sub,
Windows("Nome_Tuo_File_con_DDT_e_fattura.xls").Close SaveChanges:=False

Valgono le raccomandazioni di Anthony per il salvataggio manuale del codice prima di applicarlo.

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: [EXCEL-VBA] creare una macro per salvare documento

Postdi mofa » 14/11/08 21:37

ho provato con il consiglio di anthony47 e funziona!

x tribuno:
non ho capito se il codice che mi consigli va inserito tra:

Range("H19").Select
e
Windows("gestione6.xls").Activate
oppure va sostituito.
mofa
Utente Senior
 
Post: 150
Iscritto il: 01/02/02 01:00

Re: [EXCEL-VBA] creare una macro per salvare documento

Postdi Tribuno » 15/11/08 01:09

Il codice che ho postato io (oppure la parte di Anthony con f_name = Application.GetSaveAsFilename da inserire tra
Range("H19").Select
e
Windows("gestione6.xls").Activate
mentre prima di End Sub da inserire
Windows("Nome_Tuo_File_con_DDT_e_fattura.xls").Close SaveChanges:=False

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: [EXCEL-VBA] creare una macro per salvare documento

Postdi Anthony47 » 15/11/08 21:54

Per mofa:
Guardando la tua macro, se il file di partenza si chiama gestione6.xls (non lo dici, ma e' la mia migliore ipotesi), allora nella tua macro tutte le istruzioni da Windows("gestione6.xls").Activate in giu' (si potrebbero condensare su 1 riga...) sono inutili.
Sono io che faccio l' ipotesi errata o la macro contiene altre istruzioni che non hai postato?

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL-VBA] creare una macro per salvare documento

Postdi mofa » 28/11/08 07:17

si il file di partenza si chiama gestione6.xls.
la macro l'ho costruita manualmente, non ho utilizzato vba.
come posso riassumerla in una riga?
è possibile aggiungere a questa riga un comando che prima di farmi salvare il foglio singolo mi apra la finestra per stampare?
grazie.
mofa
Utente Senior
 
Post: 150
Iscritto il: 01/02/02 01:00

Re: [EXCEL-VBA] creare una macro per salvare documento

Postdi Anthony47 » 28/11/08 16:13

Dopo tanto tempo devo rifare mente locale, porta pazienza.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL-VBA] creare una macro per salvare documento

Postdi Anthony47 » 02/12/08 17:11

Puoi sostituire le varie .Select seguite da .Clearcontents con una sola istruzione del tipo
Codice: Seleziona tutto
Range("D14, F14, C17:C54, etc, etc").ClearContents


Tuttavia queste istruzioni istruzione sono inutili, perche' dopo aver applicato quelle cancellazioni il File viene chiuso senza essere salvato, come da tua richiesta e come realizzato dall' istruzione ThisWorkbook.Close SaveChanges:=False

Per quanto riguarda la stampa, prova a inserire prima di ActiveWorkbook.Close:
Codice: Seleziona tutto
Application.Dialogs(xlDialogPrinterSetup).Show
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True


Fai sapere, ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL-VBA] creare una macro per salvare documento":


Chi c’è in linea

Visitano il forum: Nessuno e 30 ospiti