Accueil | Ce site | CV | Excel | Livre d’or | Macros XL4 | Modèles | VBA

 Le module MOutils

Il s’agit d’un module regroupant plusieurs utilitaires que j'ai créés, auxquels je fais régulièrement appel dans mes développements. J’insère systématiquement ce module dans tout classeur contenant du code VBA.

MOutils contient actuellement (novembre 2002) 1 fonction et 3 procédures, brièvement présentées ici.

Des pages spécifiques leurs sont consacrées :

La fonction Controle

La plupart des programmes réalisés en VBA comportent au moins une zone de dialogue (objet UserForm de VBA) permettant à l’utilisateur d’effectuer un choix et/ou de fournir une information (figure 1).


Fig. 1 - Exemple de zone de dialogue où une information
est attendue de l’utilisateur.

Quand l’utilisateur clique sur le bouton OK, il est impératif que l’information attendue ait été fournie. Si ce n’est pas le cas, au lieu de poursuivre le traitement, il faut laisser à l’écran la zone de dialogue et afficher un message explicatif (figure 2).


Fig. 2 - Le message à afficher si l’utilisateur n’a pas fourni l’information requise.

La fonction Controle (sous VBA, l’emploi d’accent dans les noms de variables, de fonctions et de procédures est à proscrire) sert à tous les contrôles de saisie a posteriori nécessaires dans un UserForm, au moment de la validation.

Il s’agit de loin, de l’élément principal du module MOutils. Je l'ai développée il y a de nombreuses années, à l'époque d’Excel 3 ou 4, avec l'ancien langage macro (VBA est apparu avec Excel 5). Cette fonction est à ce point fondamentale à mes yeux, que lorsque j’ai découvert VBA, la première tâche que je me suis assignée a été le portage de cette fonction.

Les procédures Protege et Deprotege

Sa capacité à améliorer la sécurité des documents Excel est un des principaux atouts de VBA : l’une des façons les plus simples est de laisser l’utilisateur ne disposer à tout moment que d’un classeur dont toutes les feuilles sont protégées. La saisie de données et la génération d’états se font en utilisant des menus spécifiques à l’application, permettant de lancer les différents traitements. Pendant chaque traitement, les feuilles sont déprotégées, puis reprotégées avant que l’utilisateur ne récupère la main.

C’est à cela que servent les procédures Protege et Deprotege (sans accent, comme la fonction Controle).

La procédure AppelAutoDocument

Si un classeur est nécessaire à l’exécution du programme, et qu’il est déjà ouvert, il ne faut pas le réouvrir sous peine de perdre les éventuelles modifications intervenues depuis son dernier enregistrement.

C’est ce que fait AppelAutoDocument qui commence par essayer d’activer le document (ce qui équivaut à aller le chercher dans le menu “Fenêtre” pour l’amener au premier plan). En cas d’échec uniquement, la procédure ouvre le document.