| | 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 |
|
|