Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como VERIFICAR en Forma FACIL si Un LIBRO de EXCEL Está ABIERTO #520

Verificar si un libro excel está abierto

Determinar si Otro Libro de Excel está siendo Usado por otro Usuario

En este post se muestra como Saber si un Libro de Excel está Abierto, veces se tiene macros que graban ciertos datos en otros libros, mientras estos libros no estén en uso o abiertos la macro no genera problema, en caso que dichos libros de Excel estén siendo usados en el preciso momento que se intenta grabar datos en esos libros, genera error, con esta macro se puede determinar o saber si el libro en el que intentamos registrar datos se encuentra usado en ese momento  por otra persona o está abierto.

Requieres operar Excel en forma eficiente, hazlo con los mejores y de la manera más fácil, click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.

  
 

Mira la macro en acción, una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macros relacionadas en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.

Validar si un Libro de Excel está siendo usado por otra persona

Al ingresar al libro de ejemplo, se puede observar un botón, presionando el mismos se ejecuta una macro que verifica si el libro seleccionado con el Explorador de Archivos de Windows, se encuentra abierto o dicho de otra forma esta siendo usado por otro usuario, en ese caso la macro avisa si es posible usar dicho archivo o esta bloqueado porque lo está usando otra persona.

El libro de Excel del cual se desea saber si está abierto o cerrado, se puede seleccionar, como sucede en este ejemplo,  seleccionándolo directamente en el explorador de archivos de Windows, pero  si el fichero que debemos verificar está siempre en una misma dirección, se puede poner directamente la ruta y así evitar tener que estar seleccionando cada vez que ejecutemos la macro.

Se debe recordar que cuando un fichero al cual requerimos acceder para grabar datos y éste se encuentra abierto por otro usuario, Excel nos aviso que está abierto y pregunta si se requiere abrir como solo lectura o avisar cuando sea cerrado o esté disponible para su escritura.

En caso que el Libro de Excel esté abierto la macro no podrá grabar datos en ese libro abierto, lo que generará un problema, esta macro nos permite saber si un libro está siendo usado por otro operador en ese preciso momento que se procede a insertar datos en el libro usado por otra persona.

 

Explicación del código que Determina en Forma Sencilla si un Fichero se encuentra Abierto o Cerrado

En este caso el nombre del libro que se debe determinar si está abierto o cerrado se procede a seleccionar con el Explorador de Archivos de Windows, guardando en la variable «mybookopen » el nombre del archivo a verificar, lo mencionado se hace con el siguiente código:

mybookopen = Application.GetOpenFilename(«Archivos Excel (*.xl*), *.xl*»)

Si se sabe la ruta y es siempre el mismo archivo que se debe verificar se puede directamente escribir la ruta al fichero como se hace en el código siguiente:

‘mybookopen = «C:\Users\MyNotebook\Documents\AAMIS MACROS\mybook.xlsm»

Luego se procede a abrir el archivo con acceso de escritura, de la siguiente forma:
myfile = FreeFile
Open mybookopen For Binary Access Read Write Lock Read Write As #myfile
Close #myfile

En caso que el libro no tenga acceso a escritura, porque está siendo usado por otra persona, se genera un error, ese error es detectado por la macro para determinar si un libro está abierto o cerrado o dicho de otra forma esta en uso por otro operario o por el contrario no lo está usando nadie en ese momento de querer guardar datos en el libro de Excel.

Si no se genera error o es igual a 0 significa que el libro está cerrado o no lo está usando absolutamente nadie, por ende se pueden escribir datos en el y no generará ningún tipo de error, el código es el siguiente:
If Err.Number = 0 Then
MsgBox («El libro » & mybookopen & » Esta Cerrado y SE PUEDE USAR»), vbInformation, «AVISO»

Por el contrario si el libro está en uso el código de error será distinto a cero, eso nos indica que el libro está abierto o siendo usado por otra persona, el código usado es:

Else
MsgBox («Error #» & Str(Err.Number) & » – » & Err.Description & » El libro » & mybookopen & » Esta Abierto Y NO SE PUEDE USAR»), vbCritical, «AVISO»
End If

Descarga del archivo ejemplo determina si un libro de Excel está Siendo Usado

El libro de Excel usado como ejemplo lo puedes descargar desde el final de este post, sugiero su descarga y ver el vídeo explicativo asociado para que su comprensión sea más fácil, solicito aportar para sostener esta web, si está dentro de tus posibilidades, desde ya muchas gracias.

Código usado saber si otro Libro de Excel está  abierto

Código que se ingresa en ThisWorkbook en un Modulo

Sub VerificaOPEN()
On Error Resume Next
Dim myfile As Integer
mybookopen = Application.GetOpenFilename(«Archivos Excel (*.xl*), *.xl*»)
‘mybookopen = «C:\Users\MyNotebook\Documents\AAMIS MACROS\mybook.xlsm»
myfile = FreeFile
Open mybookopen For Binary Access Read Write Lock Read Write As #myfile
Close #myfile
If Err.Number = 0 Then
MsgBox («El libro » & mybookopen & » Esta Cerrado y SE PUEDE USAR»), vbInformation, «AVISO»
Else
MsgBox («Error #» & Str(Err.Number) & » – » & Err.Description & » El libro » & mybookopen & » Esta Abierto Y NO SE PUEDE USAR»), vbCritical, «AVISO»
End If
End Sub


Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407

Summary
Author Rating
1star1star1star1star1star
Aggregate Rating
no rating based on 0 votes