Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Macro excel salva con nome...

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

Macro excel salva con nome...

Postdi tonino77 » 20/01/12 11:46

Buongiorno a tutti, ho un problema su una macro e volevo chiedervi un consiglio.
La macro è la classica salva con nome...

Sub salva()
Sheets("Prev1.").Select
Sheets("Prev1.").Copy

Directory = "C:\clienti\"
ThisFile = InputBox("Salva Con Nome") & ".xls"

ActiveWorkbook.SaveAs Filename:=Directory & ThisFile, FileFormat:=xlExcel8

MsgBox _
" Il Tuo File è stato salvato correttamente " & vbCrLf & _
" " & vbCrLf & _
(ThisFile), vbInformation

End Sub

Vorrei inserire in questa macro delle condizioni, mi spiego meglio:

se nella cella A1 c'è la x deve salvarmi il file nella Directory = "C:\clienti\garanzie"
se invece la x è presente nella cella A3 deve salvarmi il file nella Directory = "C:\clienti\pagamento"
infine se la x è presente nella cella A5 deve salvarmi il file nella Directory = "C:\clienti\allestimento"

Grazie per la tua disponibilità.
tonino77
Newbie
 
Post: 6
Iscritto il: 20/01/12 11:23

Sponsor
 

Re: Macro excel salva con nome...

Postdi Flash30005 » 20/01/12 15:15

Ciao Tonino e benvenuto nel Forum

aggiungi le tre righe, prima del salvataggio
e modifica la riga del salvataggio aggiungendo la variabile "SD"

Codice: Seleziona tutto
Sub salva()
Sheets("Prev1.").Select
Sheets("Prev1.").Copy

Directory = "C:\Clienti\"
ThisFile = InputBox("Salva Con Nome") & ".xls"
SD = ""
If UCase(Range("A1").Value) = "X" Then SD = "Garanzie\"
If UCase(Range("A3").Value) = "X" Then SD = "Pagamento\"
If UCase(Range("A5").Value) = "X" Then SD = "Allestimento\"
ActiveWorkbook.SaveAs Filename:=Directory & SD & ThisFile ', FileFormat:=xlExcel8

MsgBox _
" Il Tuo File è stato salvato correttamente " & vbCrLf & _
" " & vbCrLf & _
(ThisFile), vbInformation

End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro excel salva con nome...

Postdi tonino77 » 20/01/12 15:44

Grazie Flash, come sempre sei stato gentilissimo e disponibilissimo. A buon rendere!!! :D
tonino77
Newbie
 
Post: 6
Iscritto il: 20/01/12 11:23

Re: Macro excel salva con nome...

Postdi tonino77 » 20/02/12 11:13

Salve a tutti, la storia infinita continua.....

Allora, grazie al vostro aiuto ho creato il file e funziona tutto correttamente.
il file è composto da tre fogli, il foglio "preventivo", il foglio "listino" e il foglio "storico". Nel foglio preventivo ci sono delle formule che cercano dei valori sia nel foglio "storico" che in quello "listino". Il problema è che quest'ultimo foglio ha circa 400.000 righe e di conseguenza lo rende molto pesante, circa 12 mb e altra pecca è che per lavorarci devo salvarlo in .xlsm. Per ovviare al problema di salvataggio ho incluso una macro con funzione copy, che appunto copia tutto il foglio preventivo e ne crea un altro, salvando appunto solo il contenuto del foglio preventivo. Questo rende il file creato abbastanza gestibile, circa 3 mb. Adesso però, lavorando su un computer con processore celeron, non riesco a salvare, mi si blocca sempre excel.Secondo Voi esiste un modo per snellire questo file? In allegato metto un "pezzo" del lavoro, con pochissime righe, per rendere l'idea del problema. Grazie
https://docs.google.com/open?id=0B8V2Uz ... FmZGU0YTYw
tonino77
Newbie
 
Post: 6
Iscritto il: 20/01/12 11:23

Re: Macro excel salva con nome...

Postdi Anthony47 » 20/02/12 15:51

Povero celeron.... Puoi verificare con TaskManager se quel pc va piuttosto in saturazione di memoria, cominciando quindi a swappare tra memoria fisica e memoria virtuale (disco) e quindi rallentando a dismisura; trovi le informazioni sul Tab "Prestazioni" di TaskManager.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro excel salva con nome...

Postdi tonino77 » 20/02/12 16:18

Ciao Anthony,
non esiste un modo per rendere più leggera l'operazione del foglio? Diciamo un modo per aggirare il problema causato dalla grandezza del file db?
tonino77
Newbie
 
Post: 6
Iscritto il: 20/01/12 11:23

Re: Macro excel salva con nome...

Postdi Anthony47 » 20/02/12 23:27

Hai fatto la verifica con TaskManager?
Potresti provare a lavorare con un file che contiene solo il foglio Prev1 e un secondo file che contiene i fogli Listino e Storico.
Dovrai rivedere tutte le formule che ora "pescano" dai fogli Listino e Storico affinche' peschino dal nuovo file.
A conclusione del lavoro salvi-con-nome il file preventivo e chiudi l' altro file.

Ma far girare XL2007 /2010 su un celeron e' una tortura per il celeron e il relativo utente.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro excel salva con nome...

Postdi tonino77 » 20/02/12 23:45

ciao Anthony,
il problema è che è poco gestibile anche con un i7. Pensi che dividendo i fogli sia molto più veloce salvare? Come posso modificare le formule affinché peschi sull'altro foglio?
tonino77
Newbie
 
Post: 6
Iscritto il: 20/01/12 11:23

Re: Macro excel salva con nome...

Postdi Anthony47 » 21/02/12 00:07

Splittando in due file dovrai salvare solo il file col preventivo, senza farne prima la copia.
Per modificare le formule, dovrai indirizzare il file e non solo il foglio, seguendo la convenzione excel. Ad esempio:
-il secondo file si chiama Archivio.xlsm ed e' aperto
-la formula =SE(VAL.VUOTO(B7);" ";CERCA.VERT(B7;storico;CONFRONTA("vendita";storico!$1:$1;0);FALSO)) diventera'
=SE(VAL.VUOTO(B7);" ";CERCA.VERT(B7;[Archivio.xlsm]storico;CONFRONTA("vendita";[Archivio.xlsm]storico!$1:$1;0);FALSO))
-quando chiudi il file Archivio.xlsm le formule cambieranno per includere il percorso del file

Ciao

(e la memoria come e' messa?)
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro excel salva con nome...

Postdi tonino77 » 23/02/12 11:38

Anthony,
ho sostituito la formula, ma stranamente non funziona. Non mi riporta il valore, restituendomi l'errore "#NOME?". non riesco a spiegarmi il perchè, ho spostato i due fogli listino e storico nel file archivio.xlsm lasciandolo aperto come mi hai indicato ma comunque non mi riporta i valori. Hai idea del perchè?
tonino77
Newbie
 
Post: 6
Iscritto il: 20/01/12 11:23

Re: Macro excel salva con nome...

Postdi Anthony47 » 23/02/12 12:48

Hum...
Fai riferimento a un "intervallo nominato" presente su file Archivio.xlsm...
Crea sul file Preventivo un nuovo intervallo chiamato "storicop", e come "Riferito a" gli scrivi
Codice: Seleziona tutto
='[Archivio.xlsm]FoglioXyz'!$A$1:$E$1000

Metti i riferimenti Foglio/Indirizzi corretti, rispettando la sintassi; il file Archivio.xlsm deve essere aperto in questa fase.
Poi la tua formula diventa
Codice: Seleziona tutto
=SE(VAL.VUOTO(B7);" ";CERCA.VERT(B7; storicop;CONFRONTA("vendita";storicop!$1:$1;0);FALSO))

Nota che le formule funzionerebbero anche con Archivio chiuso, ma con una certa lentezza; quindi se hai tante formule e' meglio lavorare con Archivio aperto.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Macro excel salva con nome...":


Chi c’è in linea

Visitano il forum: eliorimnap, patel e 13 ospiti