• Aucun résultat trouvé

La fenêtre Code

Dans le document VBA et Excel (Page 113-127)

La fenêtre Code est l’éditeur de code de Visual Basic Editor. Elle permet d’écrire du code Visual Basic ou de visualiser et de modifier le code existant. Toute action qu’exécute une

Chapitre 4 Découvrir Visual Basic Editor 103

application VBA existe sous forme de code et l’ensemble du code constitutif d’un projet est édité dans la fenêtre Code.

Une fenêtre Code est toujours attachée à l’un des modules apparaissant dans l’Explorateur de projet (voir Figure 4.17). Il peut s’agir d’un module standard, d’un module de classe, d’une feuille ou du document auquel est attaché le projet.

La fenêtre Code présente de nombreuses et précieuses fonctionnalités, destinées à faciliter le développement de vos projets.

La fenêtre Code du module Exemples Le module

Exemples

Figure 4.17

Chacun des modules d’un projet possède une fenêtre Code.

Vous pouvez, par exemple, ouvrir une fenêtre Code pour chacun des modules apparaissant dans votre projet et copier, coller ou déplacer du code d’une fenêtre et d’une procédure à l’autre, rechercher des chaînes de caractères ou marquer certains endroits du code en y plaçant des signets, paramétrer la fenêtre Code afin que la syntaxe Visual Basic soit vérifiée au fur et à mesure de la saisie du code, etc.

104 Excel et VBA

Figure 4.18 La fenêtre Code est le cœur de Visual Basic Editor.

Afficher et masquer la fenêtre Code

Pour accéder au code d’un élément constitutif d’un projet, ouvrez l’Explorateur de projet par l’une des méthodes indiquées ci-dessus et sélectionnez-y l’élément dont vous souhaitez afficher le code. Effectuez ensuite l’une des opérations suivantes :

Double-cliquez sur un module de code.

Cliquez du bouton droit sur l’élément voulu et choisissez la commande Code du menu contextuel.

Cliquez sur le bouton Afficher le code de l’Explorateur de projet.

Sélectionnez la commande Code du menu Affichage.

Tapez le raccourci clavier F7.

La fenêtre Code de l’élément voulu s’affiche.

Pour accéder au code des contrôles d’une feuille, double-cliquez dessus ou cliquez du bouton droit et choisissez la commande Code du menu contextuel qui s’affiche.

Info

Chapitre 4 Découvrir Visual Basic Editor 105

Pour masquer la fenêtre Code, cliquez sur la case de fermeture ou cliquez du bouton droit dans la fenêtre et sélectionnez la commande Masquer du menu contextuel qui s’affiche.

Figure 4.19 Le menu contextuel de la fenêtre Code.

Naviguer dans la fenêtre Code

Par défaut, la fenêtre Code affiche l’ensemble des procédures constituant le module par ordre alphabétique, séparées par une ligne grise. Un même module pouvant contenir un nombre important de procédures, la fenêtre Code intègre deux zones de listes destinées à permettre un déplacement rapide dans le code du module affiché.

Une procédure est un bloc d’instructions, tel qu’une macro, délimité par des ins-tructions d’encadrement et exécuté en tant qu’entité. Vous verrez au Chapitre 5 qu’une procédure peut avoir pour fonction de renvoyer une valeur ou d’exécuter un certain nombre d’actions. Le code exécutable des projets VBA est toujours contenu dans des procédures.

Les zones de listes Objet et Procédure

La zone de liste Objet référence tous les objets contenus dans le module (dans le cas d’une feuille, tous les contrôles). Pour accéder au code d’un objet, déroulez la zone de liste et sélectionnez-en le nom. Le code attaché à cet objet apparaît dans le haut de la fenêtre Code, le point d’insertion étant placé sur la première ligne du code en question (voir Figure 4.20).

Définition

106 Excel et VBA

Figure 4.20 La zone de liste

Objet répertorie l’ensemble des objets du module.

Le contrôle CmdOK sur la feuille

L'objet CmdOK dans la zone de liste Objet

Le code de l'objet CmdOK

Les éléments référencés dans la zone de liste Procédure peuvent être des procédures ou des événements, selon le type du module. Si la fenêtre Code est celle d’un module de code, la zone de liste Procédure répertorie toutes les procédures du module en question. La Figure 4.21 présente la zone de liste Procédure dans la fenêtre Code du module LivreExcel.

L’ensemble des procédures du projet y est référencé, ces dernières étant séparées par des lignes grises.

Figure 4.21

Utilisez cette zone pour accéder rapidement à une procédure du module.

Chapitre 4 Découvrir Visual Basic Editor 107

Lorsque vous enregistrez ou créez des macros dans Excel, ces macros sont stockées dans un module nommé Modulen, accessible dans le dossier Modules de l’Explorateur de projet.

Dans le haut de la liste se trouve l’entrée (Déclarations). Il s’agit des déclarations générales du module. Si la fenêtre Code est celle d’une feuille, (Général) doit être sélectionné dans la zone Objet pour que (Déclarations) apparaisse dans la zone Procédure.

Si la fenêtre Code est celle d’une feuille, la zone de liste Procédure référence l’ensemble des événements (un clic de souris, une saisie au clavier, etc.) reconnus pour la feuille ou le contrôle sélectionné dans la zone de liste Objet (voir Figure 4.22) et la fenêtre Code affiche la procédure d’événement correspondante. Si l’option (Général) est sélectionnée dans la zone Objet, la zone Procédure répertorie l’ensemble des déclarations et des procédures de la feuille.

Une procédure d’événement (ou procédure événementielle) est une procédure attachée à un événement spécifique tel qu’un clic de souris. Ce type de procé-dure s’exécute lorsque l’événement est reconnu par le programme. La création de procédures d’événement est traitée au Chapitre 14.

Pour accéder à une procédure spécifique, déroulez la zone de liste et sélectionnez-en le nom. Le code de la procédure choisie apparaît dans le haut de la fenêtre Code, le point d’insertion étant automatiquement placé sur la première ligne de code de la procédure.

Figure 4.22

La zone de liste dérou-lante Procédure répertorie l’ensemble des événements référencés pour un objet.

… gère ces événements Cet objet...

Rappel

Définition

108 Excel et VBA

Sélection de texte dans la fenêtre Code

Lorsque vous vous trouvez dans une fenêtre Code, vous pouvez sélectionner du texte à l’aide de la souris ou du clavier. Nous supposons ici que vous connaissez les méthodes de sélection standard à l’aide de ces deux périphériques. Il existe cependant des modes de sélection spécifiques à la fenêtre Code de Visual Basic Editor.

Pour sélectionner une procédure à l’aide de la souris, placez le pointeur sur la gauche du code de façon qu’il prenne la forme d’une flèche orientée vers la droite et double-cliquez (voir Figure 4.23).

Figure 4.23

Vous pouvez sélectionner rapidement une procédure entière.

Vous pouvez aussi vous déplacer ou effectuer des sélections de blocs de code à l’aide du clavier. Pour atteindre la procédure précédente, faites le raccourci clavier Ctrl+Pg. Préc.

Pour atteindre la procédure suivante, faites le raccourci Ctrl+Pg. Suiv. Pour étendre la sélection, utilisez les mêmes combinaisons de touches auxquelles vous ajouterez la touche Maj.

La substitution des touches fléchées haut et bas aux touches Pg. Préc. et Pg. Suiv.

dans les combinaisons mentionnées ci-dessus permet d’atteindre la première ligne de code sous la déclaration de procédure (Sub, Function ou Property) plutôt que la déclaration de procédure elle-même.

Astuce

Chapitre 4 Découvrir Visual Basic Editor 109

Recherche et remplacement de texte

Vous pouvez rechercher du texte dans la fenêtre Code comme vous le feriez dans un logi-ciel de traitement de texte tel que Word. Pour rechercher du texte dans la fenêtre Code, procédez comme suit :

1. À partir d’une fenêtre Code, sélectionnez la commande Rechercher du menu Édition ou tapez le raccourci clavier Ctrl+F, ou cliquez sur le bouton Rechercher de la barre d’outils Standard de Visual Basic Editor.

La boîte de dialogue Rechercher représentée à la Figure 4.24 s’affiche.

Figure 4.24

La boîte de dialogue Rechercher de Visual Basic Editor propose des options communes à l’essentiel des traitements de texte.

2. Dans la zone de texte Rechercher, saisissez le texte voulu.

3. Dans la zone Dans, sélectionnez la portée de la recherche :

– Procédure en cours. La recherche ne porte que sur le texte de la procédure en cours, c’est-à-dire celle dans laquelle se trouve le curseur.

– Module en cours. La recherche porte sur l’ensemble du module en cours, c’est-à-dire le texte de la fenêtre Code active.

– Projet en cours. La recherche porte sur l’ensemble des modules du projet, que leurs fenêtres de codes respectives soient ouvertes ou non.

– Texte sélectionné. La recherche porte sur la plage de texte sélectionnée dans la fenêtre active.

4. Dans la zone de liste déroulante, sélectionnez le sens dans lequel s’effectuera la recherche par rapport à l’emplacement du curseur : vers le haut, vers le bas ou dans les deux sens.

5. Cochez éventuellement les cases des options de recherche :

– Mot entier. Le mot est recherché en tant que mot entier, et non en tant que suite de caractères faisant partie d’un autre mot.

– Respecter la casse. La recherche porte sur le texte dont la casse (majuscules ou minuscules) est identique à celle du texte saisi dans la zone Rechercher.

– Critères spéciaux. Lorsque cette case est cochée, vous pouvez utiliser les caractères génériques (?, *, #, [listedecar], et [!listedecar]) dans la zone de texte Rechercher.

110 Excel et VBA

6. Cliquez sur le bouton Suivant pour lancer la recherche.

Si la recherche aboutit, le texte trouvé s’affiche en surbrillance dans la fenêtre Code.

(Si la recherche porte sur le projet entier et si la chaîne est trouvée dans un autre module, la fenêtre de Code de ce module est ouverte.) Pour rechercher une autre occurrence du texte, cliquez de nouveau sur le bouton Suivant.

Si le texte recherché n’est pas trouvé, un message vous l’indique.

Pour fermer la boîte de dialogue Rechercher, cliquez sur le bouton Annuler ou sur sa case de fermeture.

Une pression sur la Touche F3 ou la commande Suivant du menu Édition relance la dernière recherche effectuée sans ouvrir la boîte de dialogue Rechercher.

Pour remplacer du texte, procédez comme suit :

1. Sélectionnez la commande Remplacer du menu Édition ou tapez le raccourci clavier Ctrl+H. Si la boîte de dialogue Rechercher est ouverte, cliquez sur le bouton Rempla-cer. La boîte de dialogue Remplacer s’affiche (voir Figure 4.25).

Figure 4.25

La boîte de dialogue Remplacer.

2. Indiquez le texte à rechercher et définissez l’étendue, le sens et les options de recherche.

Dans la zone Remplacer par, saisissez le texte de remplacement.

3. Si vous souhaitez effectuer le remplacement sur toutes les occurrences du texte recherché dans la zone de recherche définie, cliquez sur Remplacer tout.

Une boîte de dialogue vous indique le nombre de remplacements effectués.

4. Pour visualiser les occurrences du texte trouvé avant d’effectuer le remplacement, cliquez sur le bouton Suivant pour lancer la recherche. Lorsque le texte est trouvé, il apparaît en surbrillance dans la fenêtre Code.

Pour remplacer l’occurrence sélectionnée, cliquez sur le bouton Remplacer. Le texte est remplacé et la recherche se poursuit.

Astuce

Chapitre 4 Découvrir Visual Basic Editor 111

Pour poursuivre la recherche sans effectuer de remplacement, cliquez sur le bouton Suivant.

Affichage de plusieurs fenêtres Code

Lorsque vous développerez dans Visual Basic Editor, vous serez souvent amené à vous déplacer entre les fenêtres Code de différents éléments de votre projet, voire à échanger du code d’une fenêtre à l’autre pour en épargner une nouvelle saisie. Pour passer d’une fenêtre Code à l’autre, ouvrez le menu Fenêtre de la barre de menus de Visual Basic Editor et sélectionnez la fenêtre que vous souhaitez passer au premier plan.

Pour afficher simultanément plusieurs fenêtres Code, procédez comme suit :

1. Placez-vous dans l’Explorateur de projet et ouvrez les fenêtres de code concernées selon la procédure décrite précédemment dans ce chapitre.

2. Sélectionnez les commandes Mosaïque horizontale (voir Figure 4.26) ou Mosaïque verticale (voir Figure  4.27) du menu Fenêtre, de façon à visualiser simultanément toutes les fenêtres Code ouvertes.

Figure 4.26

Les fenêtres Code organisées en mosaïque horizontale.

112 Excel et VBA

Figure 4.27

Les fenêtres Code organisées en mosaïque verticale.

Vous pouvez aussi séparer une fenêtre Code en deux volets, afin d’afficher simultanément des sections de code non contiguës d’un même module. Vous pouvez ainsi copier, coller ou déplacer du code d’une section à l’autre du module. Procédez comme suit :

1. Placez le curseur sur la barre de fractionnement située dans le haut de la barre de défi-lement verticale de la fenêtre Code.

2. Lorsque le curseur se transforme en une double flèche, faites glisser la barre de frac-tionnement vers le bas, jusqu’à atteindre la délimitation souhaitée pour les deux volets.

Relâchez le bouton de la souris.

La fenêtre Code étant séparée en deux volets autonomes (voir Figure 4.28), vous pouvez modifier l’affichage de l’un ou l’autre des volets à l’aide des barres de défilement verticales.

Les zones de listes Objet et Procédure s’appliquent à la fenêtre active, c’est-à-dire à celle dans laquelle se trouve le point d’insertion.

Chapitre 4 Découvrir Visual Basic Editor 113

Figure 4.28

Le fractionnement de la fenêtre Code permet d’afficher simultanément différentes sections de code d’un même module.

Pour annuler le fractionnement de la fenêtre Code, double-cliquez sur la barre de fraction-nement ou faites-la glisser vers le haut de la fenêtre.

Options d’affichage

L’affichage du code dans la fenêtre Code de Visual Basic Editor peut être paramétré de différentes façons. Cette section présente les options de paramétrage de la fenêtre. Les options de paramétrage du code sont présentées au Chapitre 5.

Par défaut, la fenêtre Code affiche l’ensemble des procédures du module, chaque procédure étant séparée par un trait gris (voir Figure 4.29).

114 Excel et VBA

Figure 4.29

L’ensemble des procédures du code s’affiche.

Si l’affichage de l’ensemble des procédures du module ne vous convient pas, vous pouvez choisir de n’afficher qu’une procédure dans la fenêtre Code. Pour définir les paramètres de la fenêtre Code, procédez comme suit :

1. Choisissez la commande Options du menu Outils. Sélectionnez l’onglet Éditeur de la boîte de dialogue Options qui s’affiche (voir Figure 4.30).

2. Cochez ou décochez les cases de la zone Paramètres de la fenêtre, en fonction du type d’affichage souhaité :

– Glisser-déplacer pour l’édition de texte. Cochez cette case pour autoriser les glis-ser-déplacer de texte dans la fenêtre Code.

– Affichage complet du module par défaut. Décochez cette case si vous souhaitez n’afficher qu’une procédure dans la fenêtre Code (voir Figure 4.31). Utilisez alors la zone de liste déroulante Procédure pour sélectionner la procédure que vous souhaitez afficher.

Chapitre 4 Découvrir Visual Basic Editor 115

– Séparation des procédures. Dans le cas d’un affichage complet du module, cette option détermine si un séparateur sera affiché ou non entre les différentes procé-dures affichées.

3. Cliquez ensuite sur OK pour valider les options choisies.

Figure 4.30

La zone Paramètres de la fenêtre permet de définir l’affichage des procé-dures dans la fenêtre Code.

Figure 4.31

Vous pouvez choisir de n’afficher qu’une procédure dans la fenêtre Code.

116 Excel et VBA

Dans le document VBA et Excel (Page 113-127)