VBA & Excel: Vérifier si une Feuille existe

Dans cet article, vous trouverez une fonction VBA très utile – vérification si une Feuille particulière existe dans le Classeur Excel. Cette fonction peut être utilisée telle quelle, il vous suffit de la copier dans un Module de votre Projet VBA.

VBA – vérifier si une Feuille existe

Pour éviter des erreurs lors d'exécution d'un code VBA, il est préférable de s'assurer que tous les Objets (Classeurs, Feuilles,…) qui doivent être manipulés existent bel et bien. Rien de plus pénible qu'une macro bloquée parce que l'utilisateur a supprimé une des Feuilles requises. Il est préférable de s'assurer soi-même si tous les éléments nécessaires à la macro sont présents et si ce n'est pas le cas, cela nous permettra de terminer la macro "proprement" avec (éventuellement) un message d'erreur indiquant ce qui empêche l'exécution correcte de la macro. Ceci fait tout simplement partie des bonnes pratiques de la programmation

La fonction VBA qui suit teste si la Feuille (dont le nom est utilisé comme argument de la fonction), est présente dans le Classeur. Elle retourne VRAI ou FAUX (ou TRUE / FALSE) en tant que Boolean.

Et voici donc le code de la fonction VBA prêt à l'utilisation:

 

Exemple d'utilisation de la fonction

L'exemple suivant teste si la Feuille "Test_1" est présente dans le Classeur et si oui, la renomme en "Test_2". Si la Feuille n'existe pas, un message est affiché à l'utilisateur.

Attention: pour faire fonctionner cet exemple, vous avez besoins des deux codes VBA (le code de la fonction plus haut & le code de l'exemple qui suit).

 

Attention aux solutions "trop" faciles

Vous allez peut-être trouver cette fonction "longue" par rapport à ce qu'elle fait. Et c'est vrai que sur internet, vous pouvez trouver des solution plus "courtes" mais attention aux solutions trop faciles!

Nombreuses fonctions que vous pouvez trouver sur le net utilisent la méthode "directe" – c'est-à-dire activer (Activate) directement la Feuille que l'on veut tester et ensuite vérifier si la fonction fonctionne ou se solde par une erreur. Si la Feuille "MaFeuille" n'existe pas, le code Sheets("MaFeuille").Activate va déclencher une erreur. Et certains utilisent ce déclenchement d'erreur comme preuve que la Feuille en question n'existe pas…

Mais est-ce la meilleure manière de créer une programme? Dans des macros / applications VBA plus complexes, cela ne peut que créer des problèmes. Donc, cette solution "miracle" est à utiliser en toute connaissance de cause…

Le code VBA qui suit est la fonction "courte" proposée par Cduigou dans les commentaires. Elle n'active pas les feuilles mais utilise la méthode de la "preuve par l'erreur". Vous pouvez donc choisir laquelle vous voulez utiliser.

Remarque finale

N'oubliez pas qu'un Classeur Excel peut contenir des Feuilles que vous ne voyez pas directement. Les Feuilles peuvent avoir 3 status différents: visible, masqué & caché.

Pour plus d'informations dans le tutoriel Visibilité des Feuilles dans Excel

VBA: vérifier si une Feuille existe dans le Classeur

Comme vous pouvez constater dans cet exemple – les Feuilles 1, 2, 3 & 6 sont visibles; La Feuille 4 est masquée, tandis que la Feuille 5 est cachée…

Pourrait également vous intéresser

Et pour terminer, voici quelques autres articles qui pourraient vous être utiles…

 

Laissez un commentaire

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

13 commentaires sur “VBA & Excel: Vérifier si une Feuille existe”