De l’intérêt de Option Explicit

Ces articles pourraient également vous intéresser...

5 réponses

  1. Hervé Inisan dit :

    DenisS > Je plussoie… :)

  2. DenisS dit :

    Personnellement, j’active systématiquement cette option. J’ai passé trop de temps à chercher pourquoi telle fonction ne retournait pas le bon résultat, alors que *tout* était parfaitement juste.

    Sauf… que j’avais fait une inversoin de caractères dans le nom d’une variable… ;)
    Alors que le compilateur, lui, ne risque pas de louper l’erreur, si on lui demande de vérifier ce point, bien entendu.

    De plus, Variant est un type qui consomme inutilement de la mémoire, et qui est lent à traiter. Je ne l’utilise que quand je n’ai pas d’autre choix.

  3. Hervé Inisan dit :

    Jacky >

    Si vous écrivez d’abord ma_variable2 et ensuite mavariable2, vous ne trouvez pas qu’il est normal que la MsgBox n’affiche pas le résultat???

    Tout à fait normal, le but de l’article est justement de montrer qu’on peut faire des erreurs très facilement dans le code, et ne pas les détecter facilement. Bien sûr, sur un programme de 10 lignes, ça saute aux yeux. Mais sur une application de 10000 lignes, ce genre de défaut va être bien plus compliqué à identifier.

    Et si vous regarder le site de Jacques Boisgontier, bien souvent Option Explicit n’est pas mentionnée dans les macros, parfois elle peux même causé des bugs.

    De mon côté, je pense que c’est une erreur ;) : si le langage est typé et permet la déclaration de variables, il faut le faire. Ça permet de structurer le code, de se poser les bonnes questions sur le type des données manipulées, et de faciliter la maintenance (entre autres). 

    Je comprends que, dans le monde Excel, ce n’est pas toujours une habitude, parce qu’Excel se veut tolérant sur l’écriture de macros. Il permet d’écrire des macros quand on est “Power User”, sans avoir les contraintes de déclarations (l’option “Déclaration des variables obligatoire” est d’ailleurs décochée pour cette raison, dans Outils / Options). Du coup, toutes les variables sont implicites et de type Variant par défaut.

    Mais ce n’est pas une bonne chose : je récupère ces temps-ci de nombreuses macros Excel (une application de 50000 lignes notamment) où :

    1. Soit les variables ne sont pas déclarées.
    2. Soit les variables sont globales, quand elles ont été déclarées.

    Sur un grand nombre de lignes, c’est ingérable, alors qu’un typage fort élimine une grande partie des soucis.

    La déclaration des variables force aussi indirectement la reconnaissance des autres instructions (puisque, si une instruction n’est pas connue, elle sera considérée comme variable, et signalée à la compilation). Par exemple, dans Excel, je vois beaucoup de gens se rater manuellement sur ActiveCell. Si on tape ActivCell.Value ou ActiceCell.Value, il y a une erreur au moment de l’exécution. Avec Option Explicit, l’erreur est signalée avant l’exécution, ou par un Débogage / Compiler. On gagne en efficacité sur le debugging (et on peut utiliser l’auto-complétion pour écrire les variables).

    Le débat est lancé :) : quels seraient les bugs potentiellement causés par Option Explicit ?

  4. Jacky dit :

    Bonjour Hervé,

    si vous écrivez d’abord ma_variable2 et ensuite mavariable2, vous ne trouvez pas qu’il est normal que la MsgBox n’affiche pas le résultat???

    Et si vous regarder le site de Jacques Boisgontier, bien souvent Option Explicit n’est pas mentionnée dans les macros, parfois elle peux même causé des bugs.

  5. klr ^^ dit :

    Merci !

    A table.

Laisser un commentaire

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

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">