Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

vba excel chiusura file excel non in uso

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

vba excel chiusura file excel non in uso

Postdi macio66 » 01/09/19 16:14

buongiorno
Ho un problema con un file excel usato da piu utenti. Il problema è che se uno si dimentica di chiuderlo, gli altri non riescono ad usarlo.
Ho cercato in rete delle soluzioni, ma senza risultati soddisfacenti.
la soluzione che ho adottato, ma con scarsi risultati è la seguente:

-In "questa cartella di lavoro", ho messo le seguenti istruzioni:

Codice: Seleziona tutto
Private Sub Workbook_Activate()    ' Gestione Flag1, INVARIATA
Flag1 = True
End Sub

Private Sub Workbook_Deactivate()   'Gestione Flag1, VARIATA
Flag1 = Now()
End Sub

Private Sub Workbook_Open()   'AGGIUNTA per lanciare InFocYN la prima volta
Flag1 = True
Call InFocusYN
End Sub


-Mentre in un "modulo" la seguente istruzione:

Codice: Seleziona tutto
Public InFoc
Public Flag1
Private Declare Function GetActiveWindow Lib "user32" () As Long

Sub InFocusYN()
    If GetActiveWindow <> Application.Hwnd Then
        If InFoc = True Then InFoc = Now()
    Else
        InFoc = True
    End If
If InFoc <> True Then
    If InFoc + TimeValue("00:15:00") < Now Then
    ThisWorkbook.Close SaveChanges:=True
    End If
End If
If Flag1 <> True Then
    If Flag1 + TimeValue("00:15:00") < Now Then
    End If
End If
DeltaT = "00:05:00"
Application.OnTime Now + TimeValue(DeltaT), "InFocusYN"
End Sub


Mi sapreste dire se è corretta, o in alternativa, un'altra soluzione.

grazie
macio66
Utente Senior
 
Post: 118
Iscritto il: 13/06/13 14:59

Sponsor
 

Re: vba excel chiusura file excel non in uso

Postdi Anthony47 » 02/09/19 00:51

Hai preso il codice da viewtopic.php?f=26&t=88590#p520116
Ma c'era stata anche una evoluzione qui: viewtopic.php?f=26&t=107686&p=631483#p631483

Dice che hai provato con scarsi risultati: mi dici le prove che hai fatto e i risultati che hai ottenuto?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16525
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba excel chiusura file excel non in uso

Postdi macio66 » 03/09/19 07:22

Ciao Anthony47
Si ho usato il codice che avevi messo tu nel primo link.
Il file in cui ho inserito il codice, ha delle userform per l'inserimento dati, e mi è capitato che, durante l'inserimento dei dati, il file si chiudesse. Con la chiusura manuale del file, mi capitava di ritrovarmi il file aperto (cosa che avete detto nel secondo link). Il codice funzionava sempre correttamente, se excel non era il programma in uso.
macio66
Utente Senior
 
Post: 118
Iscritto il: 13/06/13 14:59

Re: vba excel chiusura file excel non in uso

Postdi Anthony47 » 03/09/19 09:02

La macro controlla (anche) se excel sia inattivo, e dopo un tot di minuti "libera" il file (cioe' lo chiude); la userform e' una entita' a sé stante, per cui quando e' visualizzata allora excel risulta inattivo, e dopo un tot di minuti provoca la chiusura del file.
Mentre la diagnosi e' chiara, lo e' un po' meno la cura: nel file da proteggere c'e' una sola userform o ce ne sono diverse?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16525
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba excel chiusura file excel non in uso

Postdi macio66 » 03/09/19 20:07

Ci sono 4/5 userform a secondo del tipo di inserimento dati, ma è la prima, quella per l'inserimento del documento, che se non chiusa, alla fine di ogni nuovo inserimento si attiva automaticamente.
Quindi se il tempo impostato, combacia con la userform attiva, il file si chiude, se ho capito bene.
Ce un modo per ovviare a questo?

Ciao
macio66
Utente Senior
 
Post: 118
Iscritto il: 13/06/13 14:59

Re: vba excel chiusura file excel non in uso

Postdi Anthony47 » 04/09/19 23:24

Le macro che stai usando in realta' erano piu' per recuperare quei casi in cui l'utente dimentica il file aperto; nei casi come il tuo in realta' l'deale sarebbe lavorare con un file condiviso; ad esempio per Office 365 o 2016 parti da qui: https://support.office.com/it-it/articl ... 24e46fb104
In questo modo ogni utente dovrebbe poter fare il suo lavoro indipendentemente dagli altri

Per modificare in modo sensato il codice ora in uso bisognerebbe conoscere bene il flusso di lavoro.

Oppure si potrebbe creare un log di utilizzo, cioe' registrare l'utente che apre il file e l'orario delle sue transazioni; altri utenti che hanno bisogno del file lo possono aprire in sola lettura per leggere chi ce l'ha in uso ed eventualmente reclamarne il rilascio dall'interessato...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16525
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "vba excel chiusura file excel non in uso":


Chi c’è in linea

Visitano il forum: Marius44, raimea e 19 ospiti