Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Chiusura file a determinato orario

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

Chiusura file a determinato orario

Postdi nima » 28/04/21 18:18

Buonasera a tutti,
ho riletto questo viewtopic.php?f=26&t=107686 dove Anthony47 è molto preciso nelle sue spiegazioni per poter risolvere il mio problema
Adettando però quei codiceialle mie esigenze potrei trovare una soluzione che per le mie capacità è sempre "un'aggiustamento/arrangiamento".
Si potrebbe semplificare quei codici impostando la chiusura del file e del programma excel a un determinato orario preimpostato?
Grazie a tutti!
nima
Utente Junior
 
Post: 18
Iscritto il: 14/01/16 16:38

Sponsor
 

Re: Chiusura file a determinato orario

Postdi Anthony47 » 28/04/21 21:42

La discussione che hai linkato verte su come non lasciare aperti inutilmente (cioe' senza che essi vengano utilizzati) file che vengono condivisi tra piu' utenti.
La tua esigenza e' proprio quella, o vuoi semplicemente evitare che la sera lasci aperti dei file?

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

Re: Chiusura file a determinato orario

Postdi nima » 29/04/21 11:58

Esatto Antony... vorrei proprio impostare un orario di chiusura automatico a prescindere dall'orario di apertura.....ad esempio le 22:00 .
Considero il fatto che a quell'ora sicuramente (100%) non c'è nessuno che lo starà utilizzando.
Stò cercando sul topic giusto o devo guardare altro? Cosa suggerisci?
nima
Utente Junior
 
Post: 18
Iscritto il: 14/01/16 16:38

Re: Chiusura file a determinato orario

Postdi Anthony47 » 29/04/21 20:27

Hummm...
Posso dire che e' una cosa un po' inutile? Io lascio il pc acceso per ore o giorni, coi file aperti così sono sempre a disposizione se mi viene un'idea. Volendo potrei mandare in sleep o in ibernazione il pc dopo N minuti /ore di inutilizzo.
E non e' nemmeno così facile da realizzare, se si vuole prendere in considerazione le ipotesi piu' frequenti.
Ma visto che vuoi sperimentare ecco la mia proposta:
-per cominciare riserva 1 cella di un tuo foglio per memorizzare l'orario di chiusura. Io ho usato Foglio2-Z1
-nel modulo Questa_cartella_di_lavoro del progetto vba del file in questione inserisci questo codice:
Codice: Seleziona tutto
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
    Debug.Print Format(Now, "hh:mm:ss"), "Eseguo BeforeClose"
    NextT = ThisWorkbook.Sheets("Foglio2").Range("Z1").Value
    Application.OnTime NextT, "StartShDwn", , False
    Debug.Print Format(Now, "hh:mm:ss"), "Deschedulato StartShDwn delle " & Format(NextT, "hh:mm:ss")
On Error GoTo 0
End Sub

Private Sub Workbook_Open()
'Stop
NextT = Date + TimeValue("21:00:00")
Debug.Print Format(Now, "hh:mm:ss"), "Eseguo Workb_Open", NextT
If NextT > Now Then
    ThisWorkbook.Sheets("Foglio2").Range("Z1").Value = NextT
    Debug.Print Format(Now, "hh:mm:ss"), "Schedulo StartShDwn per le " & Format(NextT, "hh:mm:ss")
    Application.OnTime NextT, "StartShDwn", NextT + TimeValue("0:00:50")
Else
    On Error Resume Next
        NextT = ThisWorkbook.Sheets("Foglio2").Range("Z1").Value
        Application.OnTime NextT, "StartShDwn", , False
    On Error GoTo 0
End If
End Sub

In un Modulo standard inserisci:
Codice: Seleziona tutto
Public PostP As Boolean, NextT

Sub StartShDwn()
Debug.Print Format(Now, "hh:mm:ss"), "Eseguo StartShDwn"
Unload UserForm1
'On Error Resume Next
UserForm1.Show
'On Error GoTo 0
End Sub


Sub ChiudiUF()
Debug.Print Format(Now, "hh:mm:ss"), "Eseguo ChiudiUF"
Unload UserForm1
If PostP = True Then
    NextT = Now + TimeValue("0:30:00")
    ThisWorkbook.Sheets("Foglio2").Range("Z1").Value = NextT
    Debug.Print Format(Now, "hh:mm:ss"), "ChiudiUF, attivo OnTime per le " & Format(NextT, "hh:mm:ss")
    Application.OnTime NextT, "StartShDwn"
Else
    Debug.Print Format(Now, "hh:mm:ss"), "ChiudiUF, chiudo file"
    ThisWorkbook.Save
    ThisWorkbook.Close False
End If
End Sub


Poiche' ho voluto inserire un messaggio per avvertire che il file sta per essere chiuso, ed eventualmente rinviare la chiusura, ho aggiunto una "userform". La "descrizione" della userform e' contenuta in questi due file:
https://www.dropbox.com/s/m5n6t36lsq71w ... 1.frm?dl=0
https://www.dropbox.com/s/wsydsa5fknmsa ... 1.frx?dl=0

Scarica i file sul tuo disco; poi val sul vba e importa il file NIMA_UserForm1.frm:
-Menu /File /Importa file; scegli NIMA_UserForm1.frm e conferma con "Apri"

A questo punto salvi il tuo file.

Quando lo aprirai, la Sub Workbook_Open impostera' l'ora di chiusura per le 21:00 del giorno, ma solo se il file viene aperto prima delle 21.
Se il file viene chiuso prima delle 21, il controllo delle 21 viene annullato.
Alle 21 una form comparira' avvertendo della prossima chiusura del file; un pulsante consente a chi eventualmente sta lavorando sul file di rinviare la chiusura di 30minuti; altrimenti allo scadere di un timeout di 30 secondi il file verra' salvato e chiuso.

Questo e' quanto...
Lo puoi collaudare con calma tutte le sere alle 21
Avatar utente
Anthony47
Moderatore
 
Post: 17865
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Chiusura file a determinato orario

Postdi nima » 02/05/21 18:30

Ciao Antony,
come al solito ti posso solo che ringraziare per tutti i tuoi suggerimenti.
Il file, dove vorrei mettere questa macro, è utilizzato in un luogo di lavoro dove accedo più persone e anche su postazioni diverse.
Se normalmente viene chiuso non ci sono problemi; al contrario, se rimane aperto da un giorno all'altro, si verificano dei problemi in quanto ci sono altri codici che si attivano all'apertura e il cambio della data non mi permette di salvare alcuni dati.
Ho pensato a quella soluzione (chiusura forzata ad un certo orario) ma se tu mi puoi suggerire altro sono qui per ascoltarti.

Il codice che mi hai passato non l'ho ancora provato per mancanza di tempo.... appena possibile ti scriverò un riscontro.
Ciao!
nima
Utente Junior
 
Post: 18
Iscritto il: 14/01/16 16:38

Re: Chiusura file a determinato orario

Postdi Anthony47 » 02/05/21 21:08

Esatto Antony... vorrei proprio impostare un orario di chiusura automatico a prescindere dall'orario di apertura.....ad esempio le 22:00 .
Questa risposta un po' criptica mi aveva portato a pensare che il file lo usassi solo tu, da questa interpretazione avevo commentato che voler chiudere il file fosse una operazione un po' inutile; ora capisco che il file e' usato da piu' utenti, quindi la sua chiusura ha un senso.
Anzi avrebbe ancora piu' senso la soluzione presentata nella discussione da cui sei partito (viewtopic.php?f=26&t=107686), per la chiusura appena il file rimane inutilizzato per oltre un tot di tempo.

Comunque quando puoi prova cio' che ho proposto e fai sapere.

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


Torna a Applicazioni Office Windows


Topic correlati a "Chiusura file a determinato orario":


Chi c’è in linea

Visitano il forum: Nessuno e 42 ospiti