Salva e Chiudi dopo tempo di inattività

Creare una macro - Scrivere uno script - Usare le API
Rispondi
tawer39
Messaggi: 6
Iscritto il: giovedì 22 maggio 2014, 10:48

Salva e Chiudi dopo tempo di inattività

Messaggio da tawer39 »

Ciao a tutti!!
Sto lavorando ad un semplice foglio di calcolo per il report di alcuni articoli del negozio dove lavoro.. fin qui nulla di complicato. La mia difficoltà sorge dal fatto che ogni dipendente ha un account con sessioni a tempo, percui se percaso qualcuno lasciasse aperto il mio foglio di lavoro con la sua sessione, e questa scade, impedirebbe la modifica agli altri se non aprendo un nuovo file (è successo ed è stato un dramma visto che c'erano delle macro ed i miei colleghi hanno pensato bene di cambiare formato con il salvataggio.. :knock: )
Per evitare ciò ho pensato di inserire qualche macro a tempo cercandole un pò sulla rete, ma funzionano tutte perfettamente per MS office ma nessuna su openoffice



un esempio di quelle provate è questa, che dopo 20 min di inattività sulle celle, mi salva e chiude microsoft office:

Private Sub Worksheet_Change(ByVal Target As Range)
CloseMe = False
End Sub

Nel pannello Gestione progetti apri ThisWorkbook e incollaci

Private Sub Workbook_Open()
CloseMe = False
StartTimer
End Sub

Menu Inserisci>Modulo e incollaci

Public CloseMe As Boolean
Sub StartTimer()
Application.OnTime Now + TimeValue("00:20:00"), "chiudi"
'modificare il tempo di inattività
End Sub

Sub chiudi()
If CloseMe = True Then
ThisWorkbook.Save
Application.Quit
Else
CloseMe = True
StartTimer
End If
End Sub


Qualcuno di voi ha qualche idea/correzione? :D
OpenOffice 4.1 su Windows XP
vladboscaneanu
Volontario
Volontario
Messaggi: 379
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da vladboscaneanu »

Ciao, mi dispiace,penso che OpenOffice non ha un oggetto timer,ha soltanto una funzione timer.Si può creare una specie de ciclo con wait,che vera 'rallentato' per una ventina di minute...pero per quel periodo li resti senza possibilità di eseguire un'altra macro,non si può eseguire un'altra routine ,mentre questa è attiva...Sto cercando anche io una soluzione,se la trovo ,ti faccio sapere.
Ciao
P.S.ma se mettiamo alla crocetta rosa della finestra un comando che salva il documento,nel suo percorso e nel suo formato originale???L'utente ,quando va a chiudere il documento deve solo schiacciare la crocetta...il documento verrà salvato senza alcuna domanda,automaticamente. Puoi guarda che ci sono le impostazioni di backup,che permettono di scegliere una cartella per casi eccezionale,e anche la frequenza con cui si deve fare la copia.
LibreOffice ultima versione su Windows 10
tawer39
Messaggi: 6
Iscritto il: giovedì 22 maggio 2014, 10:48

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da tawer39 »

magari.. le sto pensando tutte.. la cosa più geniale mi sia venuta in mente è di riporre un foglio cartaceo sotto al monitor con scritto "ricorda di chiudere i file prima di allontanarti dal pc" :roll: Comunque grazie!!
OpenOffice 4.1 su Windows XP
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da patel »

prova il file allegato, il tempo di inattività è 60 sec. Per inattività si intende nessuna modifica alle celle, non sono intercettati mouse e tastiera.
Allegati
EventoTimerSalva.ods
(10.9 KiB) Scaricato 302 volte
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da unlucky83 »

Ottima macro patel. Ma la macro Timer1 come si avvia?
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da patel »

si avvia con l'evento Contenuto Modificato del Foglio, clic destro sul tab, Eventi Foglio ..... , quindi ogni volta che viene modificata una cella parte il timer, se non ci sono modifiche alla fine del tempo stabilito esce il messaggio, oppure si può chiudere con

Codice: Seleziona tutto

sub chiudi
oDoc = ThisComponent
oDoc.store()
oDoc.close(True)
end sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
tawer39
Messaggi: 6
Iscritto il: giovedì 22 maggio 2014, 10:48

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da tawer39 »

grazie.. ottima macro riutilizzabile in svariati modi ma ancora non mi aiuta quando i miei colleghi si allontanano dal pc.. idee su programmi esterni?
OpenOffice 4.1 su Windows XP
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da patel »

se usi la sub chiudi invece che il msgbox la macro ti aiuta quando i colleghi si allontanano dal pc
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
tawer39
Messaggi: 6
Iscritto il: giovedì 22 maggio 2014, 10:48

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da tawer39 »

Sai anche come avviare la macro all'apertura del documento senza premere il pulsante "avvia"? ho provato la modifica della macro e se si risolvesse l'avvio sarebbe semplicemente perfetta!!!
OpenOffice 4.1 su Windows XP
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da patel »

Strumenti, personalizza,Eventi, Avvio applicazione, Macro, scegli la macro
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
tawer39
Messaggi: 6
Iscritto il: giovedì 22 maggio 2014, 10:48

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da tawer39 »

ho provato ma nulla.. fino a che non do manualmente un comando esegui il timer non parte
OpenOffice 4.1 su Windows XP
tawer39
Messaggi: 6
Iscritto il: giovedì 22 maggio 2014, 10:48

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da tawer39 »

..o meglio con la seguente macro

"global inizio as long
sub avvia
dim T1 as long, T2 as long
inizio = timer
secondi = 20
while T2 < inizio + secondi
T2 = timer
Wait 100
wend
oDoc = ThisComponent
oDoc.store()
oDoc.close(True)
End Sub

Sub Timer1(Target)
dim T as long
if inizio = 0 then exit sub
If NOT Target.supportsService("com.sun.star.sheet.SheetCell") then exit sub
inizio = timer
End Sub"

il timer parte però office non si chiude finchè con clicco (anche a vuoto) su un'area qualsiasi della finestra
OpenOffice 4.1 su Windows XP
vladboscaneanu
Volontario
Volontario
Messaggi: 379
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da vladboscaneanu »

Ciao,vedi se ti va bene.
I secondi di attesa sono 10.
Allegati
Timer_test.ods
(9.39 KiB) Scaricato 173 volte
LibreOffice ultima versione su Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da patel »

vlad, la tua macro funziona, ma se fai modifiche chiude il documento senza salvare e quindi alla successiva apertura occorre ripristinare, secondo me occorre aggiungere uno store prima del close

Codice: Seleziona tutto

Sub FintoTimer
do
    ThisComponent.Store()
    Wait 10000 'sostituire la prima cifra
    IF not ThisComponent.IsModified THEN exit do
loop
ThisComponent.Store()       
ThisComponent.Close(True)
End Sub
Lo store è inserito nel loop, se il documento è grosso rallenta, ma se il tempo di attesa è abbastanza lungo non si nota, anzi si aggiunge il vantaggio del salvataggio automatico.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
vladboscaneanu
Volontario
Volontario
Messaggi: 379
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da vladboscaneanu »

Ciao patel,ho provato tante loop la notte scorsa...crash in continuazione,compreso il tuo esempio,poi ho anche un altro problema:
una volta che entra in azione l'istruzione Wait,non è possibile chiudere il documento(la crocetta rossa non risponde),devo aspettare
per forza che finisca il tempo.
LibreOffice ultima versione su Windows 10
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da unlucky83 »

vladboscaneanu ha scritto: una volta che entra in azione l'istruzione Wait,non è possibile chiudere il documento
mi intrometto di nuovo, ma non ho seguito tutta la discussione con attenzione. La crocetta rossa di cui parli è il pulsante sulla barra per interrompere le macro? A me spesso non è abilitato e quando facevo loop infiniti per sbaglio, odiavo questa cosa.
Per fortuna (dato che non ho smesso di sbagliare) esiste la combinazione di tasti "ctrl"+"maiusc"+"q" per interrompere le macro, che uso con successo.
Se non parlavi della x rossa a cui ho pensato io, scusa l'intervento fuori luogo :oops:
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
vladboscaneanu
Volontario
Volontario
Messaggi: 379
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da vladboscaneanu »

Ciao,caro.Intendevo la crocetta rossa della finestra-windows,per chiudere il documento.Visto che l'esempio verrà usato da tanti utenti,non trovo normale
la cosa.
Ciao
LibreOffice ultima versione su Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Salva e Chiudi dopo tempo di inattività

Messaggio da patel »

Cosa c'è che non va nel primo codice che ho proposto ?
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Rispondi