Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
Salvare file di Pinuccio (utente non iscritto) data: 02/06/2015 17:18:36
Ho file excel costituito da una dozzina di fogli, che funge da modello. Ogni volta apro il foglio, lo compilo, e poi lo salvo con una macro che va a salvare il file nella directory specificata, attribuendo automaticamente al file il nome che preleva dalla cella B1 del foglio dati.
Il tutto funziona bene. Il mio problema, però, è che non riesco a salvare il file nella stessa directory "E:UFFICIOVISITE nella quale si trova il file modello,ma devo impostare una directory di destinazione diversa ( "E:UFFICIOVISITE2.
E' possibile fare salvare il file nella stessa directory in cui si trova il file modello?? Grazie.
di lepat (utente non iscritto) data: 02/06/2015 17:38:48
è possibile, non capisco come tu non ci riesca
di Pinuccio (utente non iscritto) data: 02/06/2015 17:58:39
Ho ancora verificato. Impostando la macro come segue:
Mi dà un messaggio di errore:
Errore di run-tine 1004
Metodo 'SaveAs' dell'oggetto '_Workbook' non riuscito.
Se imposto una directory di destinazione diversa (es. UfficioVisite...funziona normalmente.
di Marius44 data: 02/06/2015 18:44:36
Ciao a tutti.
Ma non puoi utilizzare Application.Path
Questa funzione restituisce un valore String che rappresenta il percorso completo dell'applicazione, ad esclusione del separatore finale e del nome dell'applicazione che stai utilizzando. Pertanto dovresti servirti del procedimento seguente:
a) assegni ad una variabile il percorso: percorso = Application.Path
b) trasformi il salvataggio come segue: ActiveWorkbook.SaveAs FileName:= percorso & Range("Dati!b1").Value & ".xlsm"
Dovrebbe andar bene. Fammi sapere.
di Pinuccio (utente non iscritto) data: 02/06/2015 18:51:36
Ho scarsa dimestichezza di VBA, e non capisco in che senso dovrei modificare la macro. Dato che il file originale si trova nella directory EUfficioSorveglianza Sanitaria, e che la directory dove deve avvenire il salvataggio del file compilato è EUfficioSorveglianza sanitariasedi, come dovrei utilizzare Application.Path??
di Marius44 data: 02/06/2015 19:18:44
Ciao Pinuccio.
Dici che hai scarsa dimestichezza con VBA ma hai cambiato la prima versione
ActiveWorkbook.SaveAs FileName:="E:UFFICIOVISITE" & Range("Dati!b1").Value & ".xlsm" sostituendola con
ActiveWorkbook.SaveAs FileName:="E:UFFICIOSORVEGLIANZA SANITARIASEDI" & Range("Dati!b1").Value & ".xlsm"
Entrambe le righe sopra richiamate STANNO certamente in una Sub. Non ho fatto altro che suggerirti di mettere PRIMA di una delle due sopraddette l'assegnazione alla variabile "percorso" del risultato di Application.Path. Quindi una delle due righe più sopra richiamate vanno sostituite con:
ActiveWorkbook.SaveAs FileName:= percorso & Range("Dati!b1").Value & ".xlsm"
dove la parola "percorso" indica al PC la strada per salvare il tuo file nella medesima Directory.
Guarda il codice postato sotto.
Prova e fammi sapere.
Sub Salvataggio()
... codice precedente
percorso = Application.Path
ActiveWorkbook.SaveAs FileName:= percorso & Range("Dati!b1").Value & ".xlsm"
... codice precedente
End sub
di Pinuccio (utente non iscritto) data: 02/06/2015 19:44:35
Ora provo; ma non capisco perchè sia necessario tutto questo, quando la macro creata funziona benissimo e salva il file secondo il percorso indicato..solo che va in errore se la directory di destinazione è la stessa di quella dove si trova il file originale!!
di Pinuccio (utente non iscritto) data: 03/06/2015 11:00:42
Ho risolto, è stato sufficiente ridenominare la directory di salvataggio dei file. La macro ActiveWorkbook.SaveAs FileName:="E:UFFICIOVISITE SORVEGLIANZA SANITARIASEDI" & Range("Dati!b1").Value & ".xlsm"
mio salva infatti correttamente i files compilati nella Cartella SEDI.
In tale Cartella si trovano 5 sottocartelle, denominate A, B, C, D ed E: è possibile fare salvare il file in una di tali sottocartelle, utilizzando come riferimento una cella del foglio di lavoro?. Mi spiego. Nel foglio di lavoro, in particolari nel foglio Dati, ho in B1 il cognome e nome; in B2 posso inserire la sottocartella di salvataggio (A, B, C, D oppure E); la macro salva il file con il cognome e nome, prelevando il dato dalla cella B1 del foglio Dati. E' possibile fare prelevare anche l'indirizzo della cartella di destinazione dalla cella B2?
di Pinuccio (utente non iscritto) data: 03/06/2015 11:18:05
Ho trovato una soluzione, che mi sembra funzionante.
In pratica, la macro diventa ActiveWorkbook.SaveAs FileName:=Range ("Dati!f2") & Range("Dati!b1").Value & ".xlsm"
ove F2 è la cella che contiene il percorso di salvataggio del file e B1 la cella che contiene il nome con cui il file viene salvato.
La cella F2, inoltre, si aggiorna automaticamente a secondo di quale debba essere la cartella di destinazione.