L'informatique à votre portée
L'informatique prêt-à-porter

Faites appel à moi pour vos formations
sur les dpts 81, 31, 82, 11 et 67 (Strasbourg)
Confiez moi vos développements Office

FacebookTwitterGoogle BookmarksLinkedin

Les moyens mis à votre disposition

4 mars 2014
Imprimer E-mail

Cette instruction, Option Explicit, placée en haut de chaque module, impose de définir explicitement chaque variable du module, quelque soit leur emplacement (intérieur ou extérieur à une procédure). Cela implique donc que vous devez déclarer chacune de vos variables en début de module ou en début de procédure avec au minimum le mot clé Dim.
L'utilisation de cette instruction permet alors :

  • à VBA, de vous signaler une variable comme non déclarée, lorsque vous avez fait une faute de frappe sur celle-ci.
  • de vérifier au cours de la frappe, cette orthographe :
    • déclarer vos variables avec 1 ou plusieurs majuscules, exemple : strUnTexte
    • tapez votre code en minuscule
    • lorsque vous passez à la ligne suivante, les majuscules se mettent automatiquement, vous vérifiez ainsi la bonne orthographe de votre code.

      Tapez

      Sub Essai()
          Dim strUnText As String

      End Sub

      Tapez avant End Sub

      Passez à la ligne suivante, cela s'affiche ainsi :

          struntext="Voici le texte"

           strUnText = "Voici le texte"

  • d'en profiter pour indiquer précisément le type de données de la variable. Sinon, elles sont considérées comme Variant, qui fonctionne moins rapidement. Vous pouvez déclarer plusieurs variables sur une même ligne séparées par une virgule, mais vous devez alors indiquer le type de données pour chacune d'elles.
    Exemple :
    • Dim strText1 as String, strText2 as String, iNb as Integer
             Dim strText1 as String, strText2, iNb déclare les données ainsi :
                    strText1 de type String, strText2 et iNb de type Variant
             Dim strText1 , strText2 as String déclare les données ainsi :
                    strText1 de type Variant, strText2 de type String

    Pour placez systématiquement Option Explicit dans tous les prochains modules : dans l'éditeur VBA, sélectionnez Options dans le menu Outils. Puis dans l'onglet Éditeur, cochez l'option Déclaration des variables obligatoires. Puis Ok.

    La barre d'outils Débogage

    Lorsqu'une procédure ne produit pas le résultat escompté, un des moyens pour vérifier votre code est son exécution ligne par ligne. Vous pouvez ainsi constater le déroulement de votre programme et vérifier le contenu des variables et propriétés des objets.
    La barre d'outils Débogage contient plusieurs boutons permettant d'exécuter ou arrêter le programme :

    • Le bouton Exécuter Sub/UserForm permet de lancer l'exécution d'une procédure, vous pouvez également utiliser la touche F5,
    • Le bouton Arrêt permet d'arrêter le programme en cours, mais il est souvent difficile à atteindre. En conséquence, utilisez plutôt la combinaison de touches Ctrl+Pause,
    • Le bouton Réinitialiser permet de reprendre le programme à son début. Ce bouton n'est atteignable qu'en mode Arrêt.

    L'exécution en pas à pas

    Les 4 boutons suivants permettent d'exécuter le code ligne par ligne de manière différente .
    • Le bouton Pas à pas détaillé permet d'exécuter le code ligne après ligne. La ligne de code devant s'exécuter apparaît en surbrillance et s'exécute après un clic sur ou appuie sur la touche F8.
    • Le bouton Pas à pas principal permet d'exécuter le code ligne par ligne mais lorsque l'instruction de la ligne est un appel à une procédure ou à une fonction, cette dernière est exécuté entièrement et non ligne par ligne.
    • Le bouton Pas à pas sortant permet de terminer la procédure en cours et s'arrêter, dans la procédure appelante, à la ligne suivante celle qui a appelé la procédure ou fonction.
      Le code est exécuté en pas à pas détaillé
      Après un clic sur Pas à pas sortant
    • Le bouton Pas à pas au curseur permet d'exécuter le code jusqu'à la ligne contenant le curseur. Ce bouton n'est pas automatiquement insérer dans la barre d'outils Débogage, mais vous le trouver dans le menu Débogage ou pouvez l'ajouter à la barre d'outils.

    Le mode Arrêt

    Vous êtes dans ce mode lorsqu'une des lignes de votre code est en surbrillance . Plusieurs évènements peuvent provoquer ce mode :
    • Une erreur est survenue et vous avez cliqué sur le bouton Débogage du message d'erreur.
    • Vous avez interrompu volontairement le déroulement du programme en appuyant sur les touches Ctrl+Pause.
    • Vous avez inséré un point d'arrêt dans votre code et le programme est arrivé à cette ligne. Pour insérer ou ôter un point d'arrêt :
      • Cliquez sur la ligne où le programme doit s'arrêter puis cliquez sur le bouton Basculer le point d'arrêt
      • Ou cliquez devant la ligne dans la marge grise.
        qui devient ensuite
    • Le programme a rencontré une instruction Stop.
    • Vous exécuter le code en pas à pas.

    Vous pouvez alors, vérifier la valeur d'une variable ou d'une propriété, exécuter une instruction dans la fenêtre Exécution, poursuivre l'exécution du code normalement, en pas à pas ou réinitialiser la procédure ou fonction.

    Vérification des variables et propriétés

    VBA vous propose plusieurs moyen pour visualiser la valeur des variables et propriétés :
    • Placez votre curseur au-dessus de la variable ou la propriété, celle-ci s'affiche dans une info-bulle.
      Vérifiez au préalable si dans l'onglet Éditeur de la fenêtre Options (sélectionnez Options du menu Outils), l'option Info Express automatique est cochée.
    • Afficher la fenêtre Exécution, en cliquant sur le bouton Fenêtre Exécution , tapez un ? suivi de votre variable ou propriété d'objet, puis appuyez sur la touche Entrée :
    • Affichez la fenêtre Variables locales en cliquant sur le bouton Fenêtre Variables locales . Celle-ci affiche toutes les variables de la procédure ou fonction en cours et propriétés de l'UserForm en cours.

    • Utilisez les variables Espions, ces variables ou expressions que vous aurez désignées comme espions s'affichent dans la fenêtre Espions. Cette fenêtre affiche, en permanence, la valeur de  chacun de ces espions. Vous pouvez alors les comparer aisément. Pour désigner un espion vous devez :
      • Sélectionnez la variable ou l'expression
      • Cliquez sur le bouton Espion Express ou appuyez sur les touches Maj+F9
        OU
      • Sélectionnez la variable ou l'expression
      • Cliquez à droite et choisissez Ajouter un espion ou dans le menu Débogage, sélectionnez Ajouter un espion.
      • Dans la fenêtre qui s'ouvre vous pouvez modifier l'espion, préciser la portée de cet espion (dans sa procédure, toutes les procédures du module, tous les modules), ainsi que son type (dans notre cas, Expression espionne)
    • Les options Arrêt si la valeur est Vraie et Arrêt si la valeur change permettent d'exécuter le programme normalement, mais ce dernier passe automatiquement en mode arrêt dès que la valeur est vraie ou différente de zéro dans le 1er cas, dès que la valeur change dans le 2e cas.
    • Utilisez l'objet Debug, celui-ci représente la fenêtre Exécution et possède uniquement 2 méthodes :
      • Debug.Print listeExpression
        listeExpression correspond à une liste d'expressions à afficher dans la fenêtre Exécution, chacune de ces expressions sont séparées par une virgule.
      • Debug.Assert ExpressionBooléenne
        ExpressionBooléenne correspond à une expression renvoyant la valeur False ou True.
        Cette instruction permet de suspendre l'exécution du code si ExpressionBooléenne est fausse.
      • Exemple :

        Sub EssaiDebug()
             Dim iNb As Byte, iNbCarre As Integer
             Dim Egal5 As Boolean

             For iNb = 1 To 10
                  iNbCarre = iNb * iNb
                  Debug.Print iNb, iNbCarre
                  If iNb = 5 Then Egal5 = True
                  Debug.Assert Egal5
             Next iNb
        End Sub

        Affiche sur la fenetre Exécution les valeurs de iNb et iNbCarre.

        Le code passe en mode arrêt tant que iNb est inférieur