Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Impossibile impostare salvataggio automatico

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] Impossibile impostare salvataggio automatico

Postdi systemcrack » 22/09/17 14:52

Ciao a tutti, ritorno a scrivervi in quanto al momento ho un problema riguardante, come da titolo, il salvataggio del file di cui ho già parlato qui, qui e qui.

Premessa:
Il file non risiede sul "mio" pc, ma su un server aziendale identificato come:
Codice: Seleziona tutto
Z:\


Vorrei che venisse salvato ogni tot di tempo, (il più breve possibile.. il massimo sarebbe in tempo reale), ogni volta sovrascrivendo la versione precedente, (questo perchè il file è in condivisione e deve potere essere visto da tutti senza che "il link"/percorso/nome al file cambi).

Situazione:
-Gli office che visualizzano il file sono diversi, a seconda della postazione.

-Quello che utilizzo io è excel 2016.

-Nella schermata in alto c'è un pulsante salvataggio automatico,
Immagine

-Ma sebbene abbia provato a "giocare" con le impostazioni e a defleggare la voce "eccezioni salvataggio..", nulla sembra cambiare (vedi screen di seguito con le opzioni di salvataggio).
Immagine

Nel caso in cui il salvataggio automatico non fosse possibile da impostazioni c'è una macro o qualche cosa che permetta di salvare il file nelle modalità che servono a me?

Grazie in anticipo e in caso non dovessimo leggerci prima buon week end! ;)
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Sponsor
 

Re: [Excel] Impossibile imposatre salvataggio automatico

Postdi Anthony47 » 23/09/17 00:58

Il salvataggio automatico mantiene una o piu' copie di backup sul pc dove il file viene aperto, e serve solo per recuperare il lavoro in caso di blocco di Excel o del Pc; non ha nulla a che vedere col Salvataggio del file.

Per quello che vorresti fare DOVRESTI invece realizzare una macro che si attivi ogni Tot e che procede con l'operazione di File /Save.

Ho scritto DOVRESTI ma te lo sconsiglio vivamente, perche' come la descrivi nulla impedirebbe all'utente A di salvare il file adesso con la sua modifica e successivamente all'utente B di salvare la sua versione di file con la sua modifica, andando a cancellare le modifiche fatte dall'utente A; poi arriva l'utente C; poi torna l'utente A; e cosi' via.
A fine giornata ognuno fa il suo File Save finale e quel che rimane sul server e' solo legato al caso.

Secondo me dovresti imparare a usare la prestazione Condivisione del file di Excel; in questo modo le modifiche in conflitto vengono segnalate e teoricamente possono essere gestite; inoltre ogni utente avra' gli aggiornamenti sulla sua versione di lavoro.

Non e' un argomento semplice, parti dall'help on line di Excel alla voce "Utilizzare una cartella condivisa per la collaborazione"

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

Re: [Excel] Impossibile imposatre salvataggio automatico

Postdi systemcrack » 25/09/17 08:39

Anthony47 ha scritto:Il salvataggio automatico mantiene una o piu' copie di backup sul pc dove il file viene aperto, e serve solo per recuperare il lavoro in caso di blocco di Excel o del Pc; non ha nulla a che vedere col Salvataggio del file.

Per quello che vorresti fare DOVRESTI invece realizzare una macro che si attivi ogni Tot e che procede con l'operazione di File /Save.

Ho scritto DOVRESTI ma te lo sconsiglio vivamente, perche' come la descrivi nulla impedirebbe all'utente A di salvare il file adesso con la sua modifica e successivamente all'utente B di salvare la sua versione di file con la sua modifica, andando a cancellare le modifiche fatte dall'utente A; poi arriva l'utente C; poi torna l'utente A; e cosi' via.
A fine giornata ognuno fa il suo File Save finale e quel che rimane sul server e' solo legato al caso.


In realtà l'unico che può modificare sono io, gli altri devono solo poter vedere le modifiche in tempo reale.
La macro del salvataggio ogni tot di tempo potrebbe andare bene.
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: [Excel] Impossibile imposatre salvataggio automatico

Postdi Anthony47 » 26/09/17 02:04

Allora, se sei l'unico a fare modifiche, crea una Sub Worksheet_Change all'interno della quale, dopo aver controllato che la modifica riguarda l'area delle celle in cui tu operi, viene eseguito il comando
Codice: Seleziona tutto
ThisWorkbook.Save


Adesso pero' hai il problema che nei chiamiamoli "client" il file deve essere riaperto ogni tot minuti; e' qui che devi mettere in piedi la macro di On Time.
La dovrai mettere su un secondo file, chiamiamolo "lanciatore"
Nel modulo Questa_cartella_di_lavoro del file Lanciatore inserirai questo codice:
Codice: Seleziona tutto
Private Sub Workbook_BeforeClose(Cancel As Boolean)
FFName = "C:\Percorso\NomeFile.xlsx"                 '<<< Percorso e nome del file da aprire
mySplit = Split(FFName, "\", , vbTextCompare)
On Error Resume Next
    Workbooks(mySplit(UBound(mySplit))).Close False
    If myNext > Now Then Application.OnTime myNext, "CloseOpen", , False
On Error Resume Next
End Sub

Private Sub Workbook_Open()
Dim Ckwb As Workbook
'
FFName = "C:\Percorso\NomeFile.xlsx"                 '<<< Percorso e nome del file da aprire
mySplit = Split(FFName, "\", , vbTextCompare)
On Error Resume Next
    Set Ckwb = Workbooks(mySplit(UBound(mySplit)))
On Error GoTo 0
If Ckwb Is Nothing Then
    Workbooks.Open Filename:=FFName, ReadOnly:=True
End If
Call CloseOpen
End Sub

In un Modulo standard inserirai invece
Codice: Seleziona tutto
Public myNext As Date         ' RIGOROSAMENTE IN TESTA AL Modulo

Sub CloseOpen()
Stop
Dim Ckwb As Workbook, mySplit, FFName As String
FFName = "C:\Percorso\NomeFile.xlsx"                 '<<< Percorso e nome del file da aprire
mySplit = Split(FFName, "\", , vbTextCompare)
On Error Resume Next
    Set Ckwb = Workbooks(mySplit(UBound(mySplit)))
On Error GoTo 0
If Ckwb Is Nothing Then Exit Sub
Workbooks(mySplit(UBound(mySplit))).Close False
DoEvents
Workbooks.Open Filename:=FFName, ReadOnly:=True
myNext = Now + TimeSerial(0, 1, 0)
Application.OnTime myNext, "CloseOpen"
End Sub

Leggi e applica il commento sulla prima riga, e adatta il contenuto delle righe marcate <<< (tutte uguali).


A questo punto Salva e chiudi il lanciatore; poi riaprilo.
Verra' aperto in sola lettura anche il file che gli altri devono monitorare; ogni minuto il file verra' chiuso e riaperto in modalita' read only.
Chiudendo il lanciatore verra' chiuso anche il file da monitorare.
Ovviamente questo significa che il Pc interferira' con l'utilizzo di excel, portando periodicamente in primo piano il file da monitorare.
Questo lavoro col lanciatore e' da fare su tutti gli utenti clienti del file.

Prima di copiare supinamente il codice e di metterlo al lavoro sugli N pc ti raccomando di capire esattamente cosa fa e poi di collaudare come si comporta con un paio di utenti; ricorda che essi chiameranno te, non me.

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

Re: [Excel] Impossibile imposatre salvataggio automatico

Postdi systemcrack » 26/09/17 08:31

Grazie di tutto Anthony47, sei sempre gentilissimo e super disponibile!!!
Purtroppo non so come fare nulla di ciò che hai scritto :lol: non conosco bene quella parte di excel... VBA ecc mi sono quasi completamente sconosciuti.
Proverò a cercare e leggere in giro, perchè così non ci capisco una mazza :aaah :lol:
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: [Excel] Impossibile imposatre salvataggio automatico

Postdi systemcrack » 26/09/17 10:06

Mi sembra di capire che oltre a salvare automaticamente così si refresha anche la schermata di chi guarda, il che sarebbe davvero una gran fi##ta, ma troppo complesso.. non ci sarebbe il modo per avere un passo passo per i non addetti ai lavori? Aspetto anche pazientemente.. ;)
Anthony47 ha scritto:crea una Sub Worksheet_Change all'interno della quale, dopo aver controllato che la modifica riguarda l'area delle celle in cui tu operi, viene eseguito il comando
Codice: Seleziona tutto
ThisWorkbook.Save

Non so come o cosa intendi per creare una Sub Worksheet_Change e tra l'altro a me andrebbe bene che lavorasse a tempo invece che a modifica.. una sorta di aggiornamento ogni 30 secondi o 1 minuto.

Anthony47 ha scritto:Adesso pero' hai il problema che nei chiamiamoli "client" il file deve essere riaperto ogni tot minuti; e' qui che devi mettere in piedi la macro di On Time.
La dovrai mettere su un secondo file, chiamiamolo "lanciatore"
Nel modulo Questa_cartella_di_lavoro del file Lanciatore inserirai questo codice:
Codice: Seleziona tutto
Private Sub Workbook_BeforeClose(Cancel As Boolean)
FFName = "C:\Percorso\NomeFile.xlsx"                 '<<< Percorso e nome del file da aprire
mySplit = Split(FFName, "\", , vbTextCompare)
On Error Resume Next
    Workbooks(mySplit(UBound(mySplit))).Close False
    If myNext > Now Then Application.OnTime myNext, "CloseOpen", , False
On Error Resume Next
End Sub

Private Sub Workbook_Open()
Dim Ckwb As Workbook
'
FFName = "C:\Percorso\NomeFile.xlsx"                 '<<< Percorso e nome del file da aprire
mySplit = Split(FFName, "\", , vbTextCompare)
On Error Resume Next
    Set Ckwb = Workbooks(mySplit(UBound(mySplit)))
On Error GoTo 0
If Ckwb Is Nothing Then
    Workbooks.Open Filename:=FFName, ReadOnly:=True
End If
Call CloseOpen
End Sub

Quindi devo creare un nuovo file.. che chiamerò Lanciatore e che contiene solo questa parte di codice che inserirò come se fosse una Macro?
Anthony47 ha scritto:In un Modulo standard inserirai invece
Codice: Seleziona tutto
Public myNext As Date         ' RIGOROSAMENTE IN TESTA AL Modulo

Sub CloseOpen()
Stop
Dim Ckwb As Workbook, mySplit, FFName As String
FFName = "C:\Percorso\NomeFile.xlsx"                 '<<< Percorso e nome del file da aprire
mySplit = Split(FFName, "\", , vbTextCompare)
On Error Resume Next
    Set Ckwb = Workbooks(mySplit(UBound(mySplit)))
On Error GoTo 0
If Ckwb Is Nothing Then Exit Sub
Workbooks(mySplit(UBound(mySplit))).Close False
DoEvents
Workbooks.Open Filename:=FFName, ReadOnly:=True
myNext = Now + TimeSerial(0, 1, 0)
Application.OnTime myNext, "CloseOpen"
End Sub

Leggi e applica il commento sulla prima riga, e adatta il contenuto delle righe marcate <<< (tutte uguali).

A questo punto Salva e chiudi il lanciatore; poi riaprilo.
Verra' aperto in sola lettura anche il file che gli altri devono monitorare; ogni minuto il file verra' chiuso e riaperto in modalita' read only.
Chiudendo il lanciatore verra' chiuso anche il file da monitorare.
Ovviamente questo significa che il Pc interferira' con l'utilizzo di excel, portando periodicamente in primo piano il file da monitorare.
Questo lavoro col lanciatore e' da fare su tutti gli utenti clienti del file.

Prima di copiare supinamente il codice e di metterlo al lavoro sugli N pc ti raccomando di capire esattamente cosa fa e poi di collaudare come si comporta con un paio di utenti; ricorda che essi chiameranno te, non me.

Ciao


Mi sa che faccio un pò di confusione tra moduli, cartelle di lavoro, ecc ecc
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: [Excel] Impossibile imposatre salvataggio automatico

Postdi Anthony47 » 26/09/17 23:25

Per una guida per principianti non devi chiedere su questo forum :D

Una Sub Worksheet_Change scatta ogni qualvolta lo specifico foglio su cui la macro viene installata viene modificato.
Poiche' l'azione che si vuole compiere (File Save) e' relativamente lenta e' bene impostare un'area le cui modifiche fanno scattare l'operazione.
Supponiamo che le tue modifiche (quelle che vuoi siano portate rapidamente a conoscenza degli altri utenti del file) siano concentrate sul foglio "PIPPO" nell'area A1:A100. Ora partendo da Excel, col file di lavoro aperto:
-tasto dx sul tab col nome foglio (PIPPO); scegli Visualizza codice
-si apre l'ambiente di sviluppo delle macro nella pagina giusta
-copia questo codice e incollalo nel frame vuoto di dx:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRan As String
'
myRan = "A1:A100"       '<<< L'area per i cui cambiamenti viene subito fatto un File Save
If Application.Intersect(Target, Range(myRan)) Is Nothing Then Exit Sub
Debug.Print Now, Target.Address
ThisWorkbook.Save
End Sub
Da questo momento, quando fai una modifica nell'area indicata il file verra' automaticamente salvato, ottenendo il primo risultato.

Ora e' ovvo che se gli altri utenti aprono il file la mattina e lo chiudono la sera essi non vedranno niente di quanto hai modificato nella giornata. Per questo occorre che nei pc degli utenti ci sia il "lanciatore".
Quindi crea possibilmente su un altro PC (abilitato a condividere il file principale) un nuovo file e chiamalo LANCIATORE.xlsm

Sul primo foglio scrivi qualcosa tipo "Questo file gestisce l'apertura e l'aggiornamento automatico del file XXX; se avete problemi contattate con fiducia systemcrack al numero di cellulare (il tuo numero)"; colora inoltre lo sfondo in qualche colore vivace per poterlo identificare facilmente, e magari elimina tutti gli altri fogli predisposti nel file.
Poi, partendo da Excel, usa Alt-F11 per accedere all'ambiente di sviluppo macro; fai doppioclick sulla voce Questa_Cartella_di_Lavoro. Per capire dove cercarla guarda questo messaggio:
viewtopic.php?f=26&t=103893&p=622593#p622593

Una volta attivato il modulo Questa_Cartella_di_Lavoro, inserisci il codice delle due macro Private Sub Workbook_BeforeClose e Private Sub Workbook_Open come ti sono gia' note; personalizza le righe marcate <<< con Percorso e nome del file che il Lanciatore deve da aprire e aggiornare.

Infine devi inserire "in un modulo standard" il resto del codice; per questo, laorando nell'ambiente di sviluppo macro, eseguire il comando Meu /Inserisci /Modulo.
In questo nuovo "modulo standard" appena creato metterai il resto del codice, a partire da Public myNext As Date; anche qui devi specializzare la riga marcata <<< come fatto prima.

A questo punto hai il tuo ambiente di prova.

Salva Lanciatore.xlsm, chiudilo e riaprilo: dovrebbe aprirsi anche il file principale in modalita' solo lettura che diventa il file attivo di Excel.
Modifica una cella senza salvare e aspetta max un minuto: il file dovrebbe nel frattempo venir chiuso e riaperto nella versione disponibile sul server; te ne accorgi perche' la tua modifica non c'e' piu'.

Val sul tuo pc e fai una modifica di quelle che provoca il salvataggio file.

Torna sul pc di prova e controlla che nell'arco di un minuto il file presenti la modifica introdotta dal tuo pc.

Se funziona sei a buon punto; adesso devi controllare con gli utenti che il tutto non interferisca con le loro attivita' sul pc, in particolare sul loro eventuale uso di Excel per altri scopi.

Quindi... good luck
Avatar utente
Anthony47
Moderatore
 
Post: 17449
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re:[Excel] Impossibile impostare salvataggio automatico

Postdi systemcrack » 28/09/17 15:20

Anthony47 ha scritto:Per una guida per principianti non devi chiedere su questo forum :D

Una Sub Worksheet_Change scatta ogni qualvolta lo specifico foglio su cui la macro viene installata viene modificato.
Poiche' l'azione che si vuole compiere (File Save) e' relativamente lenta e' bene impostare un'area le cui modifiche fanno scattare l'operazione.
Supponiamo che le tue modifiche (quelle che vuoi siano portate rapidamente a conoscenza degli altri utenti del file) siano concentrate sul foglio "PIPPO" nell'area A1:A100. Ora partendo .....

[. . . .]

Val sul tuo pc e fai una modifica di quelle che provoca il salvataggio file.

Torna sul pc di prova e controlla che nell'arco di un minuto il file presenti la modifica introdotta dal tuo pc.

Se funziona sei a buon punto; adesso devi controllare con gli utenti che il tutto non interferisca con le loro attivita' sul pc, in particolare sul loro eventuale uso di Excel per altri scopi.

Quindi... good luck


Che dire.. ti voglio bene! :lol:
Studierò e lavorerò su ciò che mi hai scritto.
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: [Excel] Impossibile impostare salvataggio automatico

Postdi systemcrack » 04/10/17 13:29

Ciao Anthony47,
tutto ok..? Spero di si.. perchè io invece no :lol: :lol: :lol:
A parte gli scherzi.. volevo sottoporti la nuova situazione che si è andata a creare:
In pratica ho creato il file LANCIATORE.xlsx che trovi allegato qui di seguito, poi ho seguito questo passaggio,
Anthony47 ha scritto:Poi, partendo da Excel, usa Alt-F11 per accedere all'ambiente di sviluppo macro; fai doppio click sulla voce

La voce è nel menù laterale sinistro. Però una volta che vado a salvare le modifiche ricevo un messaggio di errore che non riesco a capire:
Screen Errore


File Test

File LANCIATORE
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: [Excel] Impossibile impostare salvataggio automatico

Postdi Anthony47 » 04/10/17 22:34

Anthony ha scritto: Quindi crea possibilmente su un altro PC (abilitato a condividere il file principale) un nuovo file e chiamalo LANCIATORE.xlsm

Quindi, non Lanciatore.xlsx ma Lanciatore.xlsm... Riprova e sicuramente andrai piu' lontano.

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

Re: [Excel] Impossibile impostare salvataggio automatico

Postdi systemcrack » 05/10/17 07:55

Anthony47 ha scritto:
Anthony ha scritto: Quindi crea possibilmente su un altro PC (abilitato a condividere il file principale) un nuovo file e chiamalo LANCIATORE.xlsm

Quindi, non Lanciatore.xlsx ma Lanciatore.xlsm... Riprova e sicuramente andrai piu' lontano.

Ciao


Grande Anthony47!!! Che rin****to che sono :lol:
Ora sono riuscito a fare tutto.. creato il file con i collegamenti funzionanti.. perciò clicco su LANCIATORE.xlsm :aaah :lol:
Si apre la facciata del file Lanciatore e in successione quella dello schema che vogliamo visualizzare e subito dopo una finestra con il linguaggio visual basic (vedi screen di seguito)

Immagine

Le modifiche fatte sul lo schema non compaiono dopo un tot... ho come l'impressione che ci sia un qualche tipo di errore :roll:
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: [Excel] Impossibile impostare salvataggio automatico

Postdi systemcrack » 05/10/17 08:27

Dimenticavo.. allego file LANCIATORE in caso tu voglia verificare toccando con mano.
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: [Excel] Impossibile impostare salvataggio automatico

Postdi Anthony47 » 05/10/17 11:57

La riga Stop e' solo di debug, e serviva per dimostrare che ogni minuto la macro viene innescata; premi F5 per far andare avanti la macro e controlla che un minuto dopo ti trovi nella stessa situazione. Dopo due o tre verifiche con risultato consistente puoi eliminare la riga Stop (basta mettergli un "apostrofo" a inizio riga) e a quel punto sai che la macro ogni minuto fara' il suo lavoro (chiudere il file e riaprirlo).

Ricordo che l'effetto cessa se il file da aggiornare periodicamente viene invece chiuso manualmente.

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

Re: [Excel] Impossibile impostare salvataggio automatico

Postdi systemcrack » 05/10/17 12:52

Anthony47 ha scritto:La riga Stop e' solo di debug, e serviva per dimostrare che ogni minuto la macro viene innescata; premi F5 per far andare avanti la macro e controlla che un minuto dopo ti trovi nella stessa situazione. Dopo due o tre verifiche con risultato consistente puoi eliminare la riga Stop (basta mettergli un "apostrofo" a inizio riga) e a quel punto sai che la macro ogni minuto fara' il suo lavoro (chiudere il file e riaprirlo).

Ricordo che l'effetto cessa se il file da aggiornare periodicamente viene invece chiuso manualmente.

Ciao

Infatti ho fatto così subito dopo aver postato la domanda constatando che così funziona perfettamente! Poi sono andato a pranzo sapendo che tu solitamente rispondi la sera, ma oggi mi hai anticipato. :lol:

Se vieni dalle parti di Ravenna hai una cena pagata! ;)

Buona giornata!
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: [Excel] Impossibile impostare salvataggio automatico

Postdi systemcrack » 01/02/21 17:43

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRan As String
'
myRan = "A1:A100"       '<<< L'area per i cui cambiamenti viene subito fatto un File Save
If Application.Intersect(Target, Range(myRan)) Is Nothing Then Exit Sub
Debug.Print Now, Target.Address
ThisWorkbook.Save
End Sub

Anthony47 scusami, ma avrei bisogno di aggiungere a questa macro un altro pezzettino e cioè che salvi anche una copia del file in formato html (web) in uno specifico percorso. Ogni volta che il file si salva, sovrascrivere il precedente.. riusciresti a darmi quest'ultimo "strappetto"? :roll: :D
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: [Excel] Impossibile impostare salvataggio automatico

Postdi Anthony47 » 01/02/21 19:50

Ti ho risposto in modo piu' articolato nell'altra discussione (viewtopic.php?f=26&t=111786)

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


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Impossibile impostare salvataggio automatico":


Chi c’è in linea

Visitano il forum: Nessuno e 31 ospiti