VBA: vérifier si un Classeur Excel est ouvert

VBA: vérifier si un Classeur Excel est déjà ouvert

Lors de l'automatisation d'Excel, il est souvent nécessaire de vérifier si un Classeur Excel est ouvert (déjà). Cette information peut servir pour savoir si le fichier est disponible ou non pour être "manipulé". Il n'est par exemple pas possible de supprimer un fichier ouvert. Tout comme un Classeur déjà ouvert ne peut être ré-ouvert par un autre utilisateur qu'en "lecture seule". Ces événements peuvent facilement perturber le bon fonctionnement de vos macros – autant donc les gérer en amont.

Ceci est d'autant plus important si vous travaillez en réseau et que les fichiers sont partagés par plusieurs utilisateurs. Avec le développement du Cloud, cette fonctionnalité devient même de plus en plus indispensable…

Voici donc une fonction qui vérifie si un fichier Excel est ouvert ou non – ou plus précisément si le Classeur est disponible à l'utilisation ou non.  Un Classeur ouvert en "lecture seule" par un autre utilisateur reste disponible à l'utilisation et est donc considéré comme "fermé".

Cette fonction retourne une valeur de type booléen  "Vrai" ou "Faux" (= True ou False) selon si le fichier est déjà ouvert ("occupé") ou non.

La fonction utilise un argument: MonClasseur de type String qui contient le chemin complet du Classeur (par ex.: "C:\Test\MonClasseur.xlsx" ).

Voici donc le code VBA de la fonction prêt à l'emploi ainsi qu'un exemple pratique de son utilisation.

Code VBA de la fonction qui vérifie si un classeur Excel est (déjà) ouvert

 

Exemple pratique d'utilisation dans une procédure (Sub)

Et voici comment utiliser cette fonction en pratique

La procédure qui suit vérifie si le classeur "C:\Test\MonClasseur.xlsx" est ouvert. Comme résultat, un message pop-up est affiché informant l'utilisateur si oui ou non le fichier est déjà ouvert.

Attention: cette fonction ne fonctionne que pour les Classeurs Excel (.xls, .xlsx, .xlsm etc.). Elle ne fonctionnera pas pour d'autres types de fichiers (vidéos, fichiers texte,…).

Pour aller plus loin en VBA…

Voici d'autres articles qui traitent de la gestion des classeurs Excel en VBA et qui pourraient vous intéresser…

Vous pouvez également jeter un coup d’œil à la Liste complète des fonctions VBA et également au Référentiel VBA disponible en PDF…

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

26 commentaires sur “VBA: vérifier si un Classeur Excel est ouvert”