Chi ha aperto il file?

Joe ha chiesto se esiste un modo per determinare, in una macro, che ha una particolare cartella di lavoro aperta. Ha pensato di usare la proprietà WriteReservedBy, ma non sembra avere le informazioni di cui ha bisogno.

Purtroppo, non vi è alcun modo per determinare queste informazioni da VBA, semplicemente non è accessibile. La proprietà WriteReservedBy non mostra che ha un file aperto; mostra che ha salvato la cartella di lavoro utilizzando una password. In altre parole, quando qualcuno salva una cartella di lavoro con la possibilità di avere una password per modificarlo, il file è "WriteReserved." La proprietà WriteReservedBy contiene il nome della persona che ha salvato il file in stato WriteReserved.

Se avete solo bisogno di conoscere la risposta (su chi ha il file aperto) periodicamente, è più facile di raccogliere un elenco di nomi di file aperti, e chiedere l'amministratore di rete di dirvi chi li ha aperto tali informazioni è mantenuta sul rete e accessibile al admin.

Un'altra possibile soluzione è quella di aggiungere una macro AutoOpen per ogni cartella di lavoro che scrive un file temporaneo su disco che contiene il nome della persona che l'apertura del file. La macro dovrebbe aprire non solo il file temporaneo, ma di gestire le condizioni di errore, come ad esempio un file temporaneo che è già aperto. Il file temporaneo potrebbe quindi essere accessibile da altre macro per vedere il nome che contiene.

Un posto aggiuntivo che può contenere una risposta è il sito VBNet. L'articolo a questa pagina contiene codice che può essere adattabile per l'informazione desiderata:

http://vbnet.mvps.org/index.html?code/network/netfileenum.htm

ExcelTips è la vostra fonte per la formazione Microsoft Excel conveniente. Questo suggerimento (2492) si applica a Microsoft Excel 97, 2000, 2002 e 2003. È possibile trovare una versione di questo suggerimento per l'interfaccia ribbon di Excel (Excel 2007 e versioni successive) qui: chi ha aperto il file ?.