L’utilitaire d’analyse est-il présent ?
Quand on utilise des fonctions de l’utilitaire d’analyse, telle la fonction alea.entre.bornes() présentée dans le dernier message, cela engendre des erreurs si la macro « Utilitaire d’analyse » n’est pas chargée en mémoire. Cela peut gravement troubler des utilisateurs du modèle qui ne seraient pas au courant de l’existence de cet utilitaire.
Il est donc sage – si l’on souhaite rendre un modèle utilisable par tous – que la présence ou non de l’utilitaire soit testée dès l’ouverture du classeur, et qu’un message approprié soit affiché quand l’utilitaire n’est pas en mémoire.
Pour cela, définissons tout d’abord dans le classeur une cellule nommée
« Test », dans laquelle nous entrons une formule requérant la présence de l’utilitaire d’analyse, par exemple =alea.entre.bornes(1;10).
La petite macro ci-dessous – à placer précisément dans ThisWorkbook – résout le problème :
Remarque 1 – Bien évidemment, quand tout va bien, il n’est pas nécessaire de dire que tout va bien : le second message peut donc tout simplement être remplacé par « Exit Sub ». On fera alors encore plus court avec une macro en deux lignes : If Not(Iserror(Range(״Test״))) Then Exit Sub, puis le MsgBox avec le message d’explication.
Remarque 2 – De même, quand il y a un problème, il faudrait idéalement un message plus détaillé expliquant comment il faut s’y prendre pour charger en mémoire la macro « Utilitaire d’analyse ».
Il est donc sage – si l’on souhaite rendre un modèle utilisable par tous – que la présence ou non de l’utilitaire soit testée dès l’ouverture du classeur, et qu’un message approprié soit affiché quand l’utilitaire n’est pas en mémoire.
Pour cela, définissons tout d’abord dans le classeur une cellule nommée
« Test », dans laquelle nous entrons une formule requérant la présence de l’utilitaire d’analyse, par exemple =alea.entre.bornes(1;10).
La petite macro ci-dessous – à placer précisément dans ThisWorkbook – résout le problème :
Remarque 1 – Bien évidemment, quand tout va bien, il n’est pas nécessaire de dire que tout va bien : le second message peut donc tout simplement être remplacé par « Exit Sub ». On fera alors encore plus court avec une macro en deux lignes : If Not(Iserror(Range(״Test״))) Then Exit Sub, puis le MsgBox avec le message d’explication.
Remarque 2 – De même, quand il y a un problème, il faudrait idéalement un message plus détaillé expliquant comment il faut s’y prendre pour charger en mémoire la macro « Utilitaire d’analyse ».
0 Commentaire(s):
Enregistrer un commentaire
<< Accueil