Joe preguntó si hay una forma de determinar, en una macro, quién tiene un libro de trabajo en particular abierto. Pensó en usar la propiedad WriteReservedBy, pero no parece tener la información que necesita.

Desafortunadamente, no hay forma de determinar esta información desde VBA, simplemente no es accesible. La propiedad WriteReservedBy no muestra quién tiene un archivo abierto; muestra quién guardó el libro de trabajo 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 guardó el archivo en el estado WriteReserved.

Si solo necesita saber la respuesta (sobre quién tiene el archivo abierto)

periódicamente, es más fácil recopilar una lista de los nombres de los archivos abiertos y pedirle al administrador de la red que le diga quién los tiene abiertos; dicha información se mantiene en la red y el administrador puede acceder a ella.

Otra posible solución es agregar una macro AutoOpen a cada libro de trabajo que escriba un archivo temporal en el disco que contenga el nombre de la persona que abre el archivo. La macro necesitaría no solo abrir el archivo temporal, sino también manejar condiciones de error, como un archivo temporal que ya está abierto. Luego, otras macros podrían acceder al archivo temporal para ver el nombre que contiene.

La macro que se encuentra en el siguiente sitio puede proporcionar otra solución para averiguar quién tiene un libro de trabajo en particular abierto:

https://bizintelsolutions.wordpress.com/2015/01/26/who-is-in-excel-xlsx-file/

Un lugar adicional que puede contener una respuesta es el sitio VBNet. El artículo de esta página contiene un código que puede adaptarse a la información deseada:

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

Tenga en cuenta que el código solo funciona en versiones anteriores de Windows. Debería funcionar bien en versiones posteriores a Windows 7, pero tenga cuidado cuando se trate de versiones posteriores; querrá probarlo completamente para asegurarse de que funciona en su entorno.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (9511) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Who_Has_the_File_Open [¿Quién tiene el archivo abierto?].