¿Quién tiene el archivo abierto?

August 25

Joe le preguntó si hay una manera de determinar, en una macro, que tiene un libro determinado abierto. Pensó acerca del uso de la propiedad WriteReservedBy, pero no parecen tener la información que necesita.

Desafortunadamente, no hay manera de determinar esta información de VBA-simplemente no es accesible. La propiedad WriteReservedBy no muestra que tiene un archivo abierto; se nota que guarda el libro con una contraseña. En otras palabras, cuando alguien guarda un libro con la opción de tener una contraseña para modificarlo, el archivo es "WriteReserved." La propiedad WriteReservedBy contiene el nombre de la persona que guarda el archivo en el estado WriteReserved.

Si sólo necesita saber la respuesta (sobre quién tiene el archivo abierto) periódicamente, es más fácil de recopilar una lista de los nombres de los archivos abiertos, y pedir al administrador de red para decirle que tiene abiertos, esa información se mantiene en la red y accesible para el administrador.

Otra posible solución es añadir una macro AutoOpen a cada libro que escribe un archivo temporal en el disco que contiene el nombre de la persona que abre el archivo. La macro necesitaría no sólo abrir el archivo temporal, pero manejar las condiciones de error, como un archivo temporal que ya está abierto. El archivo temporal podría entonces tener acceso a otras macros para ver el nombre que contiene.

Un lugar adicional que pueda sostener una respuesta es el sitio VBNET. El artículo en esta página contiene código que puede ser adaptable para la información deseada:

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

ExcelTips es su fuente de capacitación rentable Microsoft Excel. Esta punta (2492) se aplica a Microsoft Excel 97, 2000, 2002, y 2003. Usted puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y versiones posteriores) aquí: ¿Quién tiene el archivo abierto ?.