Blog ENI : Toute la veille numérique !
🎃 Jusqu'à -30% sur les livres en ligne, vidéos et e-formations.
Code : GHOST30.
Cliquez ici !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Macros et langage VBA
  3. Exécution d'un programme et règles d’écriture
Extrait - Macros et langage VBA  Découvrez la programmation sous Excel (2e édition)
Extraits du livre
Macros et langage VBA Découvrez la programmation sous Excel (2e édition)
7 avis
Revenir à la page d'achat du livre

Exécution d'un programme et règles d’écriture

Objectifs du chapitre

Après avoir utilisé avec succès l’Enregistreur de macros et créé votre premier programme, voici venu le temps de le lancer.

Ce chapitre vous permettra d’apprendre les différentes façons pour exécuter un programme.

Vous y apprendrez quelques règles d’écriture que nous vous conseillons fortement de respecter.

Vous y verrez également les premiers outils pour déboguer.

Lancer un programme depuis le ruban

Vous avez déjà vu dans le chapitre L’enregistreur de macros comment exécuter depuis Excel une macro précédemment enregistrée. Mais cette solution n’est pas la seule qu’il est possible d’utiliser pour lancer un programme.

Lancer un programme depuis VBE

Il existe plusieurs manières de lancer un programme lorsque vous êtes dans l’environnement de programmation VBE. Selon votre aisance ou vos habitudes, vous pourrez utiliser celle qui vous conviendra le mieux.

Par la barre d’outils

 Pour lancer un programme, la première solution est de placer votre curseur à l’intérieur de la macro que vous souhaitez lancer, c’est-à-dire entre les balises Sub et End Sub qui définissent les bornes de la macro.

 Cliquez sur le bouton Exécuter Sub/UserFrom dans la barre d’outils.

images/04SOB01N.png

Le programme est alors exécuté.

Par le raccourci-clavier

Si vous avez une préférence pour l’usage du clavier, il est également possible de lancer votre macro.

 Placez votre curseur à l’intérieur de la macro que vous souhaitez lancer, et appuyez sur la touche F5 de votre clavier, qui a la même fonction que le bouton Exécuter Sub/UserForm de la barre d’outils.

Par la fenêtre d’exécution

Si vous souhaitez lancer une fonction ou une procédure qui nécessite des paramètres, les deux premières solutions ne fonctionneront pas, car il faut fournir ces informations au programme pour qu’il puisse s’exécuter. Passer par la fenêtre d’exécution est la solution adaptée.

Exécuter...

Le mode pas à pas

Lorsque vous exécutez une macro, l’ensemble des instructions sont lues d’une seule traite, jusqu’à atteindre la fin du programme.

En tant que développeur, vous pouvez faire défiler le code en mode pas à pas, afin que les instructions s’exécutent les unes après les autres.

Ici, il est question de vous permettre de voir le déroulé de votre programme ligne par ligne.

 Appuyez sur la touche F8 de votre clavier au lieu de F5, le programme se lancera par la première ligne à exécuter.

La ligne est surlignée en jaune et un curseur en forme de flèche apparaît dans la bande grise à gauche de la ligne de code.

images/04SOB08N2.png

Cette ligne mise en avant sera la prochaine ligne qui sera exécutée par le programme. Il vous suffira d’appuyer de nouveau sur la touche F8 de votre clavier pour passer à la ligne suivante. Les lignes en commentaires ne sont pas lues et le programme passera à la prochaine ligne exécutable automatiquement.

 Vous pouvez également faire en sorte que le reste du programme se déroule de nouveau jusqu’au bout en appuyant sur la touche F5.

Les points d’arrêt

Vous avez vu jusqu’à présent les deux modes de déroulement d’un programme : d’une seule traite, avec la touche F5, et en mode pas à pas avec F8.

Il vous est également possible de faire défiler le code jusqu’à une ligne spécifique du code.

Pour atteindre cet objectif, vous pouvez utiliser ce qu’on appelle des points d’arrêt.

 Pour ajouter des points d’arrêt sur une ou plusieurs lignes dans votre programme, cliquez à l’endroit du code où devra être inséré le point d’arrêt puis appuyez sur la touche F9 ou cliquez directement dans la bande grise à gauche de votre ligne de code.

Vous pouvez également cliquer sur l’outil Basculer le point d’arrêt.

images/04SOB09N.png

Une pastille de couleur bordeaux apparaît alors :

images/04SOB10N.png

La présence d’un point d’arrêt agit de telle sorte que le programme sera lancé depuis la première instruction et, lorsque celui-ci devra exécuter comme prochaine ligne celle identifiée avec un point d’arrêt, il se mettra en pause, vous donnant la main pour effectuer vos contrôles :

images/04SOB11N.png

 Pour supprimer un point d’arrêt, après avoir mis le curseur sur la ligne concernée, appuyez sur la touche F9 de votre clavier ou cliquez sur l’outil...

Règles d’écriture d’un programme

Une programmation impérative

Le langage VBA suit une logique impérative, c’est-à-dire que les lignes sont exécutées les unes après les autres, selon leur ordre d’apparition dans le programme. Si une instruction ne s’exécute pas, la suivante ne le sera pas non plus.

Une indentation à respecter

Lorsque vous rédigez un programme, celui-ci sera lu par l’ordinateur, mais pour l’être humain que vous êtes, la lecture et la relecture de votre code sont primordiales. Aussi, lorsque les instructions sont englobées par d’autres instructions, par exemple avec les structures de conditions ou les boucles, que vous aborderez dans cet ouvrage, les instructions incluses doivent être indentées, c’est-à-dire décalées par une tabulation par rapport à l’instruction qui les englobe.

Voici un exemple de programme qui n’est pas indenté.

Sub MauvaisExemple() 
Dim i As Integer 
For i = 1 To 5 
If i Mod 2 =0 Then 
MsgBox i 
End If 
Next i 
End Sub 

Exemple 6 : usage d’un code non indenté

Le fait d’indenter un code signifie simplement de le rendre plus lisible, comme ceci :

Sub MauvaisExemple() 
   Dim i As Integer 
   For i = 1 To 5 
       If...

Pour la suite de cet ouvrage

Afin que vous puissiez profiter des exemples de code fournis tout au long de cet ouvrage, il est recommandé de recopier les instructions qui vous seront présentées et de les exécuter selon le mode de votre choix.