Domanda Salvataggio e chiusura temporizzata di più file contemporaneamante

alexlaudo

Nuovo utente
26 Ottobre 2020
16
1
28
Office 365
0
Ciao a tutti,
sto cercando di sviluppare un piccolo programmino in VBA.
Lo scopo del programma è gestire la chiusura e il salvataggio di alcuni file che verranno aperti contemporaneamente da più persone sullo stesso PC.
Il codice che ho preso in buona parte dai vari forum è il seguente:

in questa parte di codice lo scopo è di annullare il timer precedente e farlo ripartire ad ogni modifica del file

Visual Basic:
Private Sub Worksheet_Change(ByVal Target As Range)
StopTimer
StartTimer
End Sub
Qua dico che il timer deve partire all'apertura del file e fermarsi alla chiusura
Visual Basic:
Private Sub Workbook_Open()
Call StartTimer
End Sub
Private Sub Workbook_BeforeClose(cancel As Boolean)
Call StopTimer
End Sub
Infine qua ci sono le sub di avvio timer, salvataggio e stop
Visual Basic:
Public TempoSalvataggio As Double
Sub StartTimer()
TempoSalvataggio = Now + TimeValue("00:02:00")
Application.OnTime TempoSalvataggio, "salva"
'modificare il tempo di inattività
End Sub

Sub salva()
Workbooks("maschera lamellatrice muffato.xlsm").Save
Workbooks("maschera lamellatrice muffato.xlsm").Close
Workbooks.Open FileName:="\\modine.com\share\Department\PONTIT\Lavoro\Produzione\Rep.Presse\OEE\Maschere\menu lamellatrici.xlsm"
End Sub

Sub StopTimer()
On Error Resume Next
Application.OnTime TempoSalvataggio, "salva", , False
End Sub

Il problema è che aprendo più file con lo stesso codice, excel è come se "impazzisse", continuando a riaprirmi e a chiudermi i vari file.
Pensavo di essere riuscito a temporizzare e a stoppare correttamente le varie sub, ma sicuramente sto sbagliando qualcosa

Grazie in anticipo a chi potrà e vorrà aiutarmi
 

Marius44

VBA Expert
Moderatore
9 Settembre 2015
7.559
145
77
Catania
Excel2010
364
Ciao
Cosa intendi con
alcuni file che verranno aperti contemporaneamente da più persone sullo stesso PC.
Da quello che posso vedere nello spezzone di codice noto che ci sono solo due file:
"maschera lamellatrice muffato.xlsm"
"menu lamellatrici.xlsm"

Prova a fare la seguente. Scrivi in un foglio a mano la sequenza di apertura, salvataggio, chiusura di ogni file e nota se qualche pezzo di codice ti crea un loop infinito.
 

alexlaudo

Nuovo utente
26 Ottobre 2020
16
1
28
Office 365
0
Ciao
Cosa intendi con
alcuni file che verranno aperti contemporaneamente da più persone sullo stesso PC.
Da quello che posso vedere nello spezzone di codice noto che ci sono solo due file:
"maschera lamellatrice muffato.xlsm"
"menu lamellatrici.xlsm"

Prova a fare la seguente. Scrivi in un foglio a mano la sequenza di apertura, salvataggio, chiusura di ogni file e nota se qualche pezzo di codice ti crea un loop infinito.
Ciao,
innanzitutto grazie per la risposta.

In pratica il file "menu lamellatrici" non è altro che una schermata con 6 bottoni, ognuno di questi apre un file "maschera xxx" che corrisponde ad un centro di lavoro.
Ogni operatore inserisce i propri dati sullo stesso PC, quindi può capitare che l'operatore A inserisca i dati per il centro di lavoro A e subito dopo l'operatore B inserisca i dati per il centro di lavoro B.

La mia idea era quella di creare un timer in modo tale che la maschera si chiudesse e si salvasse in automatico dopo 2 minuti, per evitare che, nel caso in cui l'operatore A si dimenticasse di chiudere la maschera A, l'operatore B non rischiasse di inserire i dati nella maschera A.

Da quello che posso vedere nello spezzone di codice noto che ci sono solo due file:
"maschera lamellatrice muffato.xlsm"
Per quanto riguarda questo punto, ho già trovato il primo errore.
Ho copiato il codice per tutti i centri di lavoro, ma non ho modificato il nome.
Modifico e verifico, grazie ancora
 

alexlaudo

Nuovo utente
26 Ottobre 2020
16
1
28
Office 365
0
Domanda:
avendo utilizzato per più file questa variabile
Visual Basic:
Public TempoSalvataggio As Double
e utilizzandola insieme ad un'istruzione OnTime, tutte le volte che modifico la variabile in un file, a catena si modifica per tutti gli altri?
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!