Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Macro per Salvataggio File

Ultimo Aggiornamento: 29/03/2017 14:19
Post: 20
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
28/03/2017 16:25

Ciao a tutti

Avrei necessità di avere una macro all'interno di un file Excel (che inserirò i un pulsantino) che mi faccia salvare il file che sto utilizzando in una determinata cartella (ad es: F:\SCARICO)

Non credo serva allegare file come esempio

Grazie !!!

Post: 3.010
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
28/03/2017 16:28

Ciao

Fai l'operazione di salvataggio manualmente attivando il registratore di macro; terminato e interrotto il registratore avrai là macro che puoi associare al pulsante.

Alfredo
Post: 20
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
28/03/2017 16:39

Intanto grazie

Intendevo un'altra cosa (mi sono reso conto che mi sono espresso male, scusami)

In un file Excel avrei bisogno di questa macro che mi faccia salvare una copia del file che sto utilizzando in una cartella diversa

Sto per esempio lavorando su un Excel nella cartella F:\DATI
Nell'Excel vorrei una macro che mi faccia una copia dello stesso in una cartella diversa (F:\SCARICO), senza dover salvare il file che sto usando e senza doverlo neanche chiudere

Magari, per finezza, il nome del file potrebbe essere modificato aggiungendoci in coda un numero progressivo...

Ad esempio se l'Excel (in F:\DATI) si chiama FILE_NOME, quando elaboro la macro, si genera nella cartella F:\SCARICO un file FILE_NOME1

Spero di essere stato chiaro stavolta...
:)

Post: 1.148
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
28/03/2017 17:07

Ciao

qualcosa del tipo:

ActiveWorkbook.SaveCopyAs "F:\SCARICO\FILE_NOME1.xlsm"


saluti

Domenico
Win 10 - Excel 2016
Post: 3.011
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
28/03/2017 17:11

Il registratore di macro ti avrebbe dato un codice di queato tipo

vb
Sub Macro1()
    ActiveWorkbook.SaveAs Filename:="C:\Excel\xxxx.xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub


e dovevi solo modificare il percorso/nome del file.

Scusa Domenico non ti avevo visto.

[Modificato da alfrimpa 28/03/2017 17:12]

Alfredo
Post: 1.150
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
28/03/2017 17:19

Ciao

ti pare Alfredo. Ho utilizzato il savecopyas in quanto enry.. ha chiesto di non salvare né chiudere il file sul quale lavora.

Ovviamente manca una istruzione che ponga in una variabile il nome del file attivo aggiungendoci 1.

Però ho il sospetto che si voglia un progressivo in caso di un secondo/terzo ecc salvataggio, tipo: pippo2.xlsm se gia pippo1.xlsm esiste.Staremo a vedere.

saluti

[Modificato da dodo47 28/03/2017 17:23]
Domenico
Win 10 - Excel 2016
Post: 21
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
28/03/2017 18:27

Di nuovo grazie

Provo la macro
E in effetti vorrei che invece che sovrascrivere il file, mantenesse il nome ed in più il num progressivo per differenziare le eventuali differenti versioni...

Ciao !!!
Post: 1.151
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
28/03/2017 19:08

Ciao
sospettavo...la cosa è un po' più complessa.

In sostanza, una volta che "decidi" di salvare una copia con un progressivo, hai una sola strada da percorrere, in quanto dici che l'originale puoi anche non salvarlo, quindi non avresti traccia del numero utilizzato nell'ultimo salvataggio.

Pertanto, una volta stabilito che al massimo puoi salvare per esempio 99 file (File_01 - File_02 - ecc ecc) dell'originale, prima della istruzione di salvataggio di cui sopra, ti devi leggere la cartella "SCARICO" cercando tutti i file: FILE_NOME*.xlsm, e trovare quello con il numero più alto negli ultimi 2 caratteri. Una volta trovato tale numero ci aggiungi 1 e salvi l'originale.

Come stai messo con la programmazione?

saluti
[Modificato da dodo47 28/03/2017 19:10]
Domenico
Win 10 - Excel 2016
Post: 22
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
29/03/2017 08:37

Ciao
Sono messo male con la programmazione...
Provo a lasciare perdere la possibilità di piu file
Invece che salvare più versioni, sovrascrivo...sarebbe già una buona cosi
Grazie

Post: 1.153
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
29/03/2017 10:19

Ciao
il seguente codice salva una copia del documento attivo in una determinata cartella aggiungendo al nome un progressivo: _01 - _02 ecc.
Il documento attivo può non essere salvato tenendo presente che per esempio nel documento attivo cella A1 scrivi PIPPO, la copia conterrà PIPPO e, ovviamente se non salvi il documento attivo, l'originale NON conterrà PIPPO.

Ciò premesso: il nome del file originale NON DEVE CONTENERE l'underscore (_) cioè il trattino basso perché viene utilizzato dalla macro unitamente al progressivo.

Ovviamente l'originale NON deve essere nel percorso di salvataggio delle copie.

saluti

Sub SalvaProgr()
'NOTA!! IL FILE ORIGINALE DA SALVARE NON DEVE CONTENERE "_" !!!!
trovato = False
prog = 0
mPath = "F:\SCARICO\"
mFile = ActiveWorkbook.Name
mNome = Mid(mFile, 1, InStrRev(mFile, ".") - 1)
mFile = Mid(mFile, 1, InStrRev(mFile, ".") - 1) & "*.xlsm"
cerca = Dir(mPath & mFile)
Do While cerca <> ""
    trovato = True
    mNum = CInt(Mid(cerca, InStrRev(cerca, "_") + 1, 2))
    If mNum < prog Then mNum = prog
    cerca = Dir
Loop
If trovato = False Then
    ActiveWorkbook.SaveCopyAs mPath & mNome & "_01" & ".xlsm"
Else
    mNum = mNum + 1
    ActiveWorkbook.SaveCopyAs mPath & mNome & "_" & Format(mNum, "00") & ".xlsm"
End If
End Sub


[Modificato da dodo47 29/03/2017 10:19]
Domenico
Win 10 - Excel 2016
Post: 23
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
29/03/2017 10:41

Fantastico !!!!!!!

Perfetto, grazie molte !!!

Riesco ad ottenere ciò che volevo...
grazie ancora

Enrico
Post: 24
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
29/03/2017 11:25

Ultimissima domanda (è una finezza ma se non si può, è uguale)

Posso salvare il file che sto utlizzando con un nome che mi prendo da una determinata cella del file ?

Se nella cella A1 mettessi il nome, lui con la macro mi salva con quel nome...

Va benissimo comunque già cos', e la sto già utilizzando...:)

Post: 1.154
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
29/03/2017 12:21

Ciao
ma sempre con la numerazione 01-02-ecc ?? oppure no?

saluti
Domenico
Win 10 - Excel 2016
Post: 25
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
29/03/2017 12:28

Si...:)

Se nella cella A1 ci fosse scritto : ENRICO
il file che mi si salva si chiama : ENRICO, ENRICO1 etc

Se è possibile

Grazie

Ciao


Post: 1.155
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
29/03/2017 12:35

Ciao

basta che al posto di:

mFile = ActiveWorkbook.Name

ci metti:

mFile = Range("A1") & ".xlsm"

da testare

saluti

leggi bene la mia firma!!
[Modificato da dodo47 29/03/2017 12:37]
Domenico
Win 10 - Excel 2016
Post: 26
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
29/03/2017 14:19

Funziona !!!

Grazie mille, forum di notevole utilità

Enrico
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 09:54. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com