Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

Determinar con VBA si un archivo se encuentra abierto

| 1 comentario

El Excel entre una de sus tantas herramientas te permite saber si uno de los libros que necesitas usar se encuentra abierto, mediante una macro en el editor de VBA.

Esta macro te evita problemas en caso de que quieras abrir un archivo y no sepas si ya se encuentra abierto por lo tanto el hecho de que lo abras por segunda vez hará de que pierdas información valiosa que no has podido guardar con anterioridad.

¿Cómo funciona?

Primero se debe indicar que esta macro permitirá realizar la prueba de si el libro esta abierto o no con cualquier archivo. El razonamiento realizado para la realización de la macro es que se asignará una variable a un libro cualquiera (libro a verificar si esta abierto o no). En caso se asigne la variable nos indicará que el libro se encuentra abierto, en caso se produzca un error significará que el libro estará cerrado.

Ejemplo de aplicación

Sin título

(Para mayor visualización de la imagen, hacer click en la misma)

"Sea TargetWorkbook el libro a verificar si se encuentra abierto o cerrado"

¿Cómo se hace?

1. Insertar un módulo en el editor de VBA.
2. Declarar la variable que contendrá el nombre del archivo a realizar la prueba.
3. Usamos un artificio indicando al Excel que en caso se produzca un error continúe con el siguiente, de esta forma evitamos que la macro se detenga.
4. Tal como se menciono anteriormente lo que realiza en este paso es asignar una variable al libro a la cual se esta realizando la prueba y en caso se pueda asignar quiere decir que el libro esta abierto. Caso contrario, si ocurre un error el libro esta cerrado es decir el VBA establece el resultado como falso.

Por ejemplo en el caso mostrado, debido a que el archivo no esta abierto entonces nos sale en mensaje de "cerrado".

 

Un comentario

  1. muchas gracias por el post. Me sirivó mucho.
    Saludos desde México.

Deja una respuesta

Los campos requeridos estan marcados con *.