Vous êtes sur la page 1sur 40

Table des matières

1 Enregistrer une macro ..................................................................................................3


1.1 Qu’est-ce qu’une macro? ..............................................................................................3
1.2 L’onglet Développeur (Developer) .................................................................................3
1.3 Enregistrer une macro...................................................................................................4
1.4 Exécuter une macro ......................................................................................................6
1.5 Annuler ou modifier une macro ....................................................................................6
1.6 Macros relatives et absolues .........................................................................................7
2 Lier une macro à un bouton .........................................................................................9
2.1 Par le biais de bouton de barre d'outils pour un accès rapide ........................................9
2.2 Par le biais du bouton de ruban ................................................................................... 12
2.3 Bouton de formulaire dans la feuille de calcul ............................................................. 13
2.4 Contrôles ActiveX dans une feuille de calcul ................................................................ 15
2.5 Lier des macros à des formes automatiques ................................................................ 17
3 Enregistrer des dossiers avec des macros ...................................................................18
4 Sécurité des macros....................................................................................................19
4.1 Activer les macros lors de l'affichage de la barre de message ...................................... 19
4.2 Activer les macros dans l’environnement Backstage .................................................... 19
4.3 Modifier les paramètres de Macro dans le Centre de gestion de la confidentialité ...... 20
4.4 Informations sur les paramètres de macro .................................................................. 21
4.4.1 Désactiver toutes les macros sans notification .......................................................21
4.4.2 Désactiver toutes les macros avec notification .......................................................21
4.4.3 Désactiver toutes les macros à l’exception des macros signées numériquement ....21
4.4.4 Activer toutes les macros.......................................................................................21
4.4.5 Accès au modèle d’objet du projet VBA .................................................................21
4.5 Un emplacement sécurisé pour ajouter, supprimer ou modifier vos fichiers................ 21
5 Environnement de l’éditeur Visual Basic ....................................................................23
5.1 Commentaire .............................................................................................................. 24
5.2 Sub …End Sub ............................................................................................................. 24
5.3 With… End With .......................................................................................................... 24
5.3.1 Indice de couleur ...................................................................................................24
5.3.2 Supprimez le code .................................................................................................24
6 Blocs de construction VBA et Macro...........................................................................25
6.1 Fenêtres de message................................................................................................... 25
6.2 Fenêtres d’entrée........................................................................................................ 25
6.3 Variables et constantes ............................................................................................... 25

1 Enregistrer une macro | Excel 2010.


6.3.1 Les différents types de données ............................................................................ 25
6.3.2 Variables............................................................................................................... 25
6.3.3 Constantes ............................................................................................................ 25
6.3.4 Option explicit ...................................................................................................... 25
7 Construire la structure des macros ............................................................................ 27
7.1 Séquence .................................................................................................................... 27
7.2 Sélection ou choix ....................................................................................................... 27
7.3 Itération ou répétition ............................................................................................... 27
7.3.1 Répétition conditionnelle ...................................................................................... 28
7.4 Questions à choix multiples ........................................................................................ 28
8 Noms de macros réservés .......................................................................................... 29
8.1 Auto_Open of Workbook_Open ................................................................................. 29
8.2 Auto_Close of Workbook_Close .................................................................................. 29
9 Développer une fonction ........................................................................................... 30
9.1 Créer une procédure................................................................................................... 30
9.2 Retrouver une fonction ............................................................................................... 31
9.3 Finaliser la fonction .................................................................................................... 31
10 La différence entre macros et fonctions ..................................................................... 33
10.1 Appeler les macros ou les fonctions ............................................................................ 33
10.2 L’utilisation d’arguments ............................................................................................ 35
10.3 Fonctions renvoyant une valeur .................................................................................. 35
10.4 Appel de macro “Call”................................................................................................. 36
11 Etendre les fonctions et les macros Excel Add-in ....................................................... 37
11.1 Excel Add-in ................................................................................................................ 37
11.2 Add-In disponible........................................................................................................ 37
11.3 Utiliser de nouvelles fonctionnalités ........................................................................... 39

2 Enregistrer une macro | Excel 2010.


1 Enregistrer une macro

1.1 Qu’est-ce qu’une macro?


Une macro est une série de commandes consécutives programmée dans une application telle
qu’Excel, et que vous pouvez exécuter automatiquement. Les macros sont créées en VBA et sont
donc utilisables dans nos algorithmes. De cette façon, nous ne devons pas apprendre beaucoup de
codes. Nous effectuons les actions que nous souhaitons programmer et les enregistrons dans
l'enregistreur de macros. L'enregistreur de macros est un générateur de programmes qui écrit les
codes-source indispensables pour la création des macros.
Le but n’est pas seulement de gagner du temps mais également d’éviter des erreurs. Des opérations
complexes peuvent désormais également être effectuées par les utilisateurs moins expérimentés
d’Excel – au moyen d'une macro. Par exemple, si nous souhaitons pouvoir créer un fond de cellules
rouge de manière automatique, nous pouvons enregistrer une macro qui colore l'arrière-plan des
cellules en rouge.
Une macro que vous avez enregistrée via l'enregistreur de macros n’est en fait rien d'autre qu'une
séquence d'instructions qui font la même chose que ce que vous avez dans Excel. Elle sera donc
également appelée une commande de macro.
1.2 L’onglet Développeur (Developer)

L’onglet Développeur (Developer) n’est pas


actif par défaut.

Pour pouvoir créer des macros en Excel, vous


devez activer l’onglet Développeur. Nous le
faisons de la manière suivante:

Cliquez sur l’onglet Fichier (File) et choisissez


Options (Options).

Cliquez sur Personnaliser le ruban


(Customize Ribbon).

Ici, vous pouvez cocher la case Développeur


(Developer) dans la partie de droite de cette
fenêtre.

3 Enregistrer une macro | Excel 2010.


1.3 Enregistrer une macro
Sélectionnez l’onglet Développeur (Developer) et cliquez sur le bouton
Enregistrer une macro (Record Macro) dans le groupe Code (Code).

Vous obtenez alors une boîte de dialogue dans laquelle vous pouvez écrire le nom de la macro.

4 Enregistrer une macro | Excel 2010.


Conventions liées au nom:
 Utilisez seulement des lettres, des chiffres et le symbole Under score( _ ).
 Pour obtenir un nom lisible, nous commençons par mcr et ensuite nous tapons la première
lettre du nom de la macro en majuscule.
 Les espaces ne sont pas autorisés.
 Nous utilisons un nom lié au contenu de la macro
 Évitez, dans tous les cas, d'utiliser un nom qui est le même que le nom du fichier ou le nom
d'un de vos feuilles de calcul ou feuilles de graphique. Sinon, il est possible que la macro ne
fonctionne pas correctement.
 Vous ne pouvez pas non plus utiliser un nom qui existe par rapport à une fonction (comme
par exemple MOYENNE (Average)).
Vous pouvez éventuellement définir un raccourci clavier mais ce n’est pas indispensable. En effet,
dans cet exercice, vos macros ne doivent être disponibles que pour ce fichier. Vous devez choisir
Enregistrer la macro dans : Ce classeur (Store macro in : This workbook). Normalement, cette option
est déjà paramétrée.

Dans le groupe Code (Code) apparaît le bouton Arrêter l’enregistrement (Stop


Recording). Ce bouton apparaît également dans la barre d'État.

Toutes les actions que vous effectuez seront enregistrées par Excel et, lorsque vous rappellerez la
macro, elles seront à nouveau effectuées. Prenez soin de prévoir à l’avance ce dont vous avez
besoin.
Lorsque vous avez inclus toutes les commandes souhaitées, cliquez sur le bouton « Arrêter
l’enregistrement » qui est apparu.

5 Enregistrer une macro | Excel 2010.


1.4 Exécuter une macro
Différentes possibilités pour commencer l'exécution:

 Via le ruban, Développeur (Developer), dans le groupe Code (Code), cliquez sur le bouton
Macros.
 Si vous avez défini une touche de raccourci, vous pouvez exécuter la macro à l’aide de cette
touche de raccourci.
 Lier une macro à un bouton (voir ci-dessous)
Vous obtenez alors une boîte de dialogue avec toutes les macros disponibles dans ce classeur.
Sélectionnez la macro souhaitée et cliquez sur le bouton « Exécuter ».

1.5 Annuler ou modifier une macro


Si la macro ne fonctionne pas comme vous l’avez espéré, il y a deux possibilités : vous la corrigez
manuellement. S’il s’agit d’une macro simple, il sera plus rapide de l’annuler et de la recommencer.
Pour corriger une macro ou pour la supprimer, vous devez rouvrir la boîte de dialogue « Macro ».
Pour supprimer une macro, cliquez sur la macro souhaitée et cliquer sur le bouton Supprimer
(Delete).
Pour modifier une macro, cliquez sur le bouton Modifier (Edit).
L’éditeur Visual Basic démarre. Vous voyez maintenant le code de la macro. Une dose de bon sens
est souvent suffisante pour comprendre ce que ce code va réellement faire. Maintenant, vous
pouvez ajuster le code existant.
Corriger une macro peut également être intéressant pour supprimer un code source inutile. Le
programme place souvent le code inutile dans le générateur de macro, ce qui peut ralentir la mise en
œuvre.

6 Enregistrer une macro | Excel 2010.


Dans le groupe Code (Code), vous pouvez voir le bouton Visual Basic. Ce bouton
vous permet d’accéder à l’éditeur Visual Basic.

1.6 Macros relatives et absolues


Lors de l'enregistrement d'une macro, Excel stocke les références exactes des cellules que vous
sélectionnez.
Cela signifie que lorsque vous exécutez une macro, les mêmes cellules seront toujours sélectionnées,
indépendamment de la cellule active actuelle.
Par défaut, toutes les macros sont absolues.
Dans l'exemple ci-dessous, une macro copie le contenu des cellules dans la colonne D. Par défaut,
cette macro contient des références absolues.

Le code ressemble à ceci :

 La même macro a été enregistrée avec des références de cellule relative. Cette fois, le
bouton Utiliser les références relatives (Use Relative References) dans le groupe Code (Code)
a été activé lors de l’enregistrement.

7 Enregistrer une macro | Excel 2010.


 La macro examinera maintenant l'emplacement de la cellule active actuelle.

 Dans ce cas, le code est différent:

L’utilisation de références absolues et relatives devrait être fixée chaque fois que c’est nécessaire
pour la mise en œuvre de la macro. Vous devez en tenir compte dans l'enregistrement.

8 Enregistrer une macro | Excel 2010.


2 Lier une macro à un bouton

Une manière pratique d’exécuter une macro est:


 Ajouter un bouton à la barre d’outils d’accès rapide (Quick Access Toolbar), un onglet
supplémentaire dans le ruban avec un ou plusieurs groupes et y insérer les boutons.
 Utilisez un bouton de formulaire sur la feuille de calcul.
 Utiliser un bouton ActiveX sur la feuille de calcul.
Les macros peuvent également être liées aux autres événements tels que l'ouverture d'une feuille de
calcul par exemple. Nous en parlerons plus tard dans ce cours.
2.1 Par le biais de bouton de barre d'outils pour un accès rapide
Cliquez sur la flèche dans la barre d’outils d’accès rapide (Quick Access Toolbar) et choisissez Autres
commandes (More Commands).

La boîte de dialogue Options Excel s’ouvre dans la partie barre d’outils d’accès rapide (Quick Access
Toolbar).

9 Lier une macro à un bouton | Excel 2010.


 Sélectionnez Macros dans le groupe Choisir les commandes dans les catégories suivantes
(Choose commands from).
 Les macros apparaissent dans la fenêtre de gauche.

10 Lier une macro à un bouton | Excel 2010.


 Vous pouvez maintenant ajouter une macro (Add) à la barre d’outils d’accès rapide (Quick
Access Toolbar).
 Via le bouton Modifier (Modify), vous pouvez changer le nom ou l’icône.

 Vous obtenez les résultats suivants.

11 Lier une macro à un bouton | Excel 2010.


2.2 Par le biais du bouton de ruban
 Cliquez sur l’onglet Fichier (File). L’environnement Backstage s’ouvre.
 Cliquez sous Aide sur Options. La boîte de dialogue Options est affichée.
 Cliquez sur Personnaliser le ruban (Customize Ribbon).
Vous pouvez maintenant ajouter les nouveaux onglets avec les groupes dans lesquels vous pouvez
ajouter des macros.

Vous pouvez en outre modifier le titre de l'onglet et les noms des groupes en fonction de vos
souhaits.

12 Lier une macro à un bouton | Excel 2010.


Ensuite, vous obtenez le résultat souhaité.

2.3 Bouton de formulaire dans la feuille de calcul


Dans le groupe Contrôles (Controls), vous voyez le bouton Insérer (Insert). Ce
bouton contient deux parties; les contrôles de formulaire (FormControls) et les
contrôles ActiveX (ActiveX Controls).

13 Lier une macro à un bouton | Excel 2010.


Dans cette barre d’outils, nous avons besoin d’un seul bouton. Cliquez sur ce bouton et vous verrez
que le curseur de la souris se transforme en une croix. Placez-vous maintenant à l’endroit souhaité
dans la feuille de calcul et faites glisser la souris depuis le coin supérieur gauche vers le coin inférieur
droit. Lorsque vous relâchez le bouton de la souris, vous obtenez une fenêtre avec les macros
disponibles. Si, pendant que vous dessinez le bouton, vous maintenez la touche Alt enfoncée, le
bouton sera parfaitement sur les bords d'une cellule.
Nous faisons usage ici des contrôles de formulaires et dessinons un bouton sur la feuille de calcul. La
boîte de dialogue Assigner une macro (Assign Macro) s’ouvre et nous pouvons sélectionner la macro
souhaitée.
Sélectionnez la macro que vous souhaitez exécuter avec le bouton créé et puis cliquez sur OK.
Maintenant, vous pouvez toujours modifier le texte du bouton, et lui donner le nom que vous voulez
et ensuite cliquer en dehors du bouton. En appuyant sur Enter, vous créez un nouveau paragraphe
dans le bouton. Le texte à l'intérieur de ce bouton est totalement indépendant de la macro. C'est
juste un outil d’aide pour l'utilisateur.
Si vous souhaitez modifier les propriétés du bouton par la suite (police différente, couleur, taille,
texte ou macro,...), il vous suffit de cliquer avec le bouton de droite de la souris. Dans le menu
contextuel, vous pouvez modifier les propriétés et, avec les poignées, vous pouvez modifier la taille
du bouton. En cliquant dans le bouton, vous pouvez modifier le texte.

Assurez-vous que le bouton macro ne disparaît pas avec le filtrage de données.


Cliquez avec le bouton droit de la souris sur le bouton et choisissez Format de contrôle
(Format Control). Sachez que le bouton ne doit pas être relié à des cellules dans l'onglet Propriétés
(Properties).

14 Lier une macro à un bouton | Excel 2010.


2.4 Contrôles ActiveX dans une feuille de calcul
Dans le groupe Contrôles (Controls), vous voyez le bouton Insérer (Insert). Ce
bouton contient deux parties; les contrôles de formulaire (FormControls) et les
contrôles ActiveX (ActiveX Controls).

Cela semble très similaire au premier type de contrôles grâce à un bouton de barre d'outils de
formulaires. Les contrôles sont à peu près les mêmes, mais les fonctionnalités de personnalisation
sont plus étendues. Vous pouvez écrire en code VBA et l’associer au bouton immédiatement.
Nous utilisons ici des contrôles ActiveX et dessinons un bouton sur la feuille de calcul.

15 Lier une macro à un bouton | Excel 2010.


Dans le groupe Contrôles (Controls), remarquez que le bouton Mode Création
(Design Mode) est actif et que vous pouvez aussi utiliser les boutons Propriétés
(Properties) et Visualiser le code (View Code).

Via un clic droit, vous pouvez également modifier les Propriétés (Properties) du bouton. Donnez au
moins un nom correct et clair immédiatement au bouton.

Après avoir dessiné le bouton, faites un clic droit sur l'objet et choisissez Visualiser le code (View
Code).

16 Lier une macro à un bouton | Excel 2010.


Si vous souhaitez tester un bouton, vous devez tout d'abord quitter le mode Création. Si vous
souhaitez modifier un élément par la suite, vous devrez réactiver le mode création via le même
bouton.
2.5 Lier des macros à des formes automatiques
Choisissez une forme automatique et placez-la dans votre feuille de calcul. Via un clic droit, vous
pouvez assigner une macro à votre objet. Bien entendu, il est possible de personnaliser la mise en
forme.

17 Lier une macro à un bouton | Excel 2010.


3 Enregistrer des Classeurs avec des macros

Les classeurs avec les macros possèdent l'extension * .xlsm


Par défaut, l'extension d’Excel à l’enregistrement est .xlsx. Cependant, ce format de fichier ne
permet pas d’enregistrer les macros. Vous devez modifier l’extension manuellement en * .xlsm

Si vous oubliez cette action, vous obtenez un message d’avertissement d'Excel.

18 Enregistrer des Classeurs avec des macros | Excel 2010.


4 Sécurité des macros

Pour travailler de manière efficace, il se peut que vous ayez besoin d’utiliser certaines macros sur
votre ordinateur. Cela signifie qu’à un certain moment, vous devez décider si vous faites confiance
aux concepteurs de ces macros.
La sécurité est une question de confiance. A qui pouvez-vous faire confiance? Comment le savez-
vous? Heureusement, les programmes Office possèdent des fonctionnalités qui vous aident à
prendre ces décisions.
À l'aide de certificats numériques, vous pouvez définir des niveaux de sécurité pour les macros. Cela
permet de rendre l'ordinateur moins vulnérable face à une attaque par des utilisateurs malveillants.
4.1 Activer les macros lors de l'affichage de la barre de message
Lorsque vous ouvrez un fichier avec des macros, la barre de message jaune apparaît avec une icône
et un bouton Activer le contenu (Enable content). Utilisez les étapes suivantes si vous n’êtes pas
certain ou si vous ne savez pas que les macros viennent d'une source fiable :
 Dans la barre de message, cliquez sur activer.
 Le fichier est ouvert et il s’agit d’un document de confiance.
L'illustration suivante est un exemple de la barre de message liée à un fichier contenant des macros.

4.2 Activer les macros dans l’environnement Backstage


Vous pouvez également activer les macros dans l’environnement Backstage de Microsoft Office
lorsque la barre de message jaune apparaît.
 Cliquez sur l’onglet Fichier (File). L’environnement Backstage est ouvert.

 Cliquez dans la partie Avertissement de sécurité sur le bouton Activer le contenu (Enable
content).
 Sélectionnez sous Activer tout le contenu (Enable All Content) l’option Toujours activer le
contenu actif de ce document.

19 Sécurité des macros | Excel 2010.


 Le fichier est un document de confiance.

4.3 Modifier les paramètres de Macro dans le Centre de gestion de la


confidentialité
Les paramètres des macros sont situés dans le Centre de gestion de la confidentialité. Si vous
travaillez dans une organisation, votre administrateur système pourrait avoir personnalisé les
paramètres par défaut pour empêcher, par exemple, quelqu'un de modifier certains paramètres.
Si vous modifiez les paramètres de macro dans le Centre de gestion de la confidentialité, ils sont
modifiés uniquement pour le programme Office que vous utilisez actuellement. Les paramètres de
macro ne changent pas pour tous les programmes Office 2010.
 Cliquez sur l’onglet Fichier (File). L’environnement Backstage s’ouvre.
 Cliquez sous Aide sur Options. La boîte de dialogue Options s’affiche.
 Cliquez sur Centre de gestion de la confidentialité (Trust Center) et cliquez sur Paramètres
du Centre de gestion de la confidentialité (Trust Center Settings).
 Cliquez dans Centre de gestion de la confidentialité sur Paramètres des macros (Macro
Settings).
 Sélectionnez les options souhaitées. Cliquez sur OK.
L’image ci-dessous appartient à la partie Paramètres des macros du Centre de gestion de la
confidentialité.

20 Sécurité des macros | Excel 2010.


4.4 Informations sur les paramètres de macro
4.4.1 Désactiver toutes les macros sans notification
Des macros et des alertes de sécurité sur les macros sont désactivées.
4.4.2 Désactiver toutes les macros avec notification
Les macros sont désactivées, mais il y aura les avertissements de sécurité s'il n'y a pas de macros
disponibles. De cette façon, vous pouvez choisir chaque fois si vous souhaitez désactiver vos macros.
4.4.3 Désactiver toutes les macros à l’exception des macros signées numériquement
Les macros sont désactivées, mais il y aura les avertissements de sécurité s'il n'y a pas de macros
disponibles. Toutefois, si la macro est signée numériquement par un éditeur de confidentialité, elle
sera appliquée si vous avez indiqué précédemment que l'éditeur est approuvé. Si ce n'est pas le cas,
vous recevrez un avis que vous pouvez activer la macro signée et que vous pouvez faire confiance en
l’éditeur.
4.4.4 Activer toutes les macros
Toutes les macros sont exécutées. Avec cette option, l'ordinateur est vulnérable par rapport à un
code potentiellement malveillant.
4.4.5 Accès au modèle d’objet du projet VBA
Refuser ou autoriser l'accès automatisé au modèle d’objet du projet VBA. Cette option de protection
est destinée au code qui a été écrit pour l'automatisation d’un programme Office et l’édition de
l’environnement VBA et du modèle d'objet. Cette option est définie séparément par utilisateur et
par application. L'accès est refusé en standard, pour empêcher des programmes non autorisés de
générer du code auto-répliquant. Cliquer sur la case de sélection pour accorder l’accès.

4.5 Un emplacement sécurisé pour ajouter, supprimer ou modifier vos


fichiers
Un emplacement sécurisé est un dossier désigné sur un disque personnel ou un disque réseau. Tout
fichier placé dans un emplacement sécurisé peut être ouvert librement, il ne sera pas contrôlé par le
système de sécurité du Centre de Gestion de la Confidentialité.
 Cliquez sur l’onglet Fichier (File). L’environnement Backstage s’ouvre.
 Cliquez sous Aide sur Options. La boîte de dialogue Options s’affiche.
 Cliquez sur Centre de gestion de la confidentialité (Trust Center) et cliquez sur Paramètres
du Centre de gestion de la confidentialité (Trust Center Settings).
 Dans le Centre de gestion de la confidentialité (Trust Center), cliquez sur Emplacements
approuvés (Trusted locations).
 Cliquez sur le bouton Ajouter un nouvel emplacement (Add new location). La boîte de
dialogue Emplacement de Microsoft approuvé s’ouvre.
 Cliquez sur Parcourir pour atteindre le dossier, sélectionnez le dossier et appuyer sur OK.
 L'illustration suivante montre Emplacements approuvés (Trusted locations) du Centre de
gestion de la confidentialité (Trust Center).

21 Sécurité des macros | Excel 2010.


22 Sécurité des macros | Excel 2010.
5 Environnement de l’éditeur Visual Basic

Dans le groupe Code (Code), vous trouvez le bouton Visual Basic. Ce bouton vous
donne accès à l’éditeur Visual basic.

Vous pouvez atteindre l’environnement Visual Basic via la fenêtre de macro

Le code généré par les macros est situé dans le dossier Modules du projet VBA correspondant
(fichier).

23 Environnement de l’éditeur Visual Basic | Excel 2010.


5.1 Commentaire
Le texte est précédé par un caractère ‘ de couleur verte. Cela signifie que ce texte doit être considéré
comme un commentaire.

5.2 Sub …End Sub


Sub signifie sous-routine et est suivi par le nom de la macro, lui-même suivi de deux parenthèses. Le
code se termine par End Sub

5.3 With… End With


With…End With sont utilisés dans les constructions de macros. Il s'agit d'une notation abrégée pour
indiquer si vous souhaitez effectuer plusieurs actions sur un objet particulier ou si vous souhaitez
modifier plusieurs propriétés.
5.3.1 Indice de couleur
Le code de selection.interior.color = 255donne la couleur 255 à la sélection.
Nous utilisons 256 couleurs (de 1 à 256).
Si vous modifiez le code de la couleur de remplissage, elle sera modifiée directement.
5.3.2 Supprimez le code
Comme vous pouvez le voir dans la deuxième macro, tous les codes sont inclus dans la macro, y
compris les paramètres que vous n'avez pas changés. Par conséquent, il est nécessaire de se rendre
directement dans le code pour supprimer les instructions superflues.
Astuce : Placez les codes comme commentaire et faites un test à nouveau par rapport à votre code.
Par la suite, vous pouvez supprimer définitivement les instructions.

24 Environnement de l’éditeur Visual Basic | Excel 2010.


6 Blocs de construction VBA et Macro

6.1 Fenêtres de message


Affiche un message dans une boîte de dialogue, attend que l'utilisateur choisisse un bouton et
renvoie une valeur entière qui indique quel bouton l'utilisateur a choisi.
Syntaxe:
MsgBox(prompt[, Buttons] [, title] [, helpfile, context])
6.2 Fenêtres d’entrée
Affiche une fenêtre invitant l'utilisateur à entrer du texte ou à choisir un bouton et renvoie un
affichage du contenu de la zone de texte.
Syntaxe:
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
6.3 Variables et constantes
Dans les macros, nous utilisons également les variables pour stocker les valeurs temporaires et les
constantes afin de conserver des données pour une utilisation ultérieure.
6.3.1 Les différents types de données
Vous avez déjà clairement réalisé qu'il existe différents types de données. Il est également primordial
que ce soit vous qui définissiez ces types de données et pas Excel. Cela épargne non seulement de la
mémoire, mais permet également au code de fonctionner plus rapidement. Le fait de le définir vous-
même vous aidera à corriger les éventuelles erreurs plus facilement.
6.3.2 Variables
Pour la déclaration des variables, vous utilisez l’instruction Dim.
Vous pouvez placer une instruction de déclaration dans une procédure pour créer une variable d’un
niveau de procédure. Vous pouvez également placer la déclaration en haut d'un module dans la
section Déclarations, vous permettant de créer une variable de d’un niveau de module.
Syntaxe:
[Public | Private]Dim variable name [As type]
Si cette instruction apparaît dans une procédure, la variable ne peut être utilisée que dans cette
procédure et nous parlons alors d’une variable locale. Si l'instruction apparaît dans la section
Déclarations du module, la variable est disponible pour toutes les procédures au sein du module,
mais pas dans les procédures liées à d'autres modules dans le projet. Si, devant cette variable, vous
incluez l'instruction Public au lieu de Dim, vous la rendez disponible pour toutes les procédures du
projet.
6.3.3 Constantes
Déclaration des constantes afin de les utiliser en remplacement de chaînes de caractères.
Syntaxe:
[Public | Private]Const nom_de_constante [Astype] =expression
Les constantes que vous déclarez dans une procédure Sub, Function ou Property, sont des
constantes locales de cette procédure. Une constante que vous déclarez en dehors d’une procédure
est définie pour l’ensemble du module dans lequel vous l’avez déclarée.
6.3.4 Option explicit

L'originalité de Visual Basic par rapport à de nombreux autres langages est qu'il autorise l'utilisation
de variables qui n'ont pas été déclarées au préalable. Néanmoins, vous pouvez imposer la

25 Blocs de construction VBA et Macro | Excel 2010.


déclaration explicite des variables, en rajoutant dans la section de déclaration de chaque feuille ou
module "Option Explicit". Ainsi, l'utilisation d'une variable non-déclarée provoquera une erreur à la
compilation.

Obliger la déclaration des variables présente plusieurs avantages :

 Un gain de lisibilité : des variables convenablement déclarées et typées rendent les


programmes plus faciles à écrire et à lire.
 Un gain de ressource mémoire assez important : en effet, lorsqu'une variable n'est pas
déclarée, Visual Basic va lui attribuer le type de donnée "Variant", qui est beaucoup plus
gourmand en mémoire que les autres types.
 Un gain de performances : le type variant est notoirement cause de lenteur, car il oblige VB à
de nombreux transtypages lors de l'exécution.
 Éviter des erreurs difficilement détectables dues à des fautes de frappes dans le nom des
variables. L'utilisation de "Option Explicit" permet de détecter ce genre d'erreur.

Outils (Tools) – Options (Options): exiger la déclaration des variables :

A partir de ce moment, l’instruction Option Explicit sera automatiquement ajoutée dans les
déclarations générales des nouveaux modules.

26 Blocs de construction VBA et Macro | Excel 2010.


7 Construire la structure des macros

7.1 Séquence
La séquence est une structure de contrôles composée d'une ou plusieurs commandes qui se suivent.
Cette structure de contrôle définit l'ordre dans lequel les instructions seront effectuées.
7.2 Sélection ou choix
La sélection est une structure de contrôle composée d’une sélection de conditions combinées de
deux séquences.
Syntaxe:
If condition Then [instructions] [Else autres instructions]
Vous pouvez également utiliser la syntaxe suivante sous forme de bloc :
If condition Then

[instructions]
[Else
[autres instructions]]
End If
Les constructions Si peuvent également être imbriquées.
Un exemple:

7.3 Itération ou répétition


Tout comme dans d'autres environnements de programmation, nous parlerons ici des répétitions
délimitées et des répétitions conditionnelles. Pour ces dernières, il en existe de deux types : les
répétitions conditionnelles avec la condition au début ou avec la condition en clôture.
Une répétition délimitée est une structure de contrôle par laquelle les instructions sont plusieurs
effectuées en boucle. Le nombre de retours est fixé d'avance.
Une répétition conditionnelle avec condition de début est une structure de contrôle construite à
partir d'une condition de début et d’instructions de répétition. Aussi longtemps que la condition de
début est vérifiée, la répétition est effectuée.
Une répétition conditionnelle avec condition de fermeture est une structure de contrôle construite à
partir d’instructions de répétitions et d’une condition de fermeture. La répétition est effectuée
jusqu'à ce que la condition de fermeture soit vérifiée.
Contrainte de répétition
Syntaxe:
Forcompteur=Valeur_initialeTovaleur_finale [Stepstap]
[instructions] [Exit For]

27 Construire la structure des macros | Excel 2010.


[instructions]
Next [compteur]
7.3.1 Répétition conditionnelle
Syntaxe:
Do [{While | Until} condition]
[instructions]
[Exit Do]
[instructions]
Loop
Vous pouvez aussi utiliser la syntaxe ci-dessous:
Do
[instructions]
[Exit Do]
[instructions]
Loop [{While | Until} condition]
While condition
[instructions]
Wend
7.4 Questions à choix multiples
Syntaxe:
Select Case condition
[Case condition-n
[instructions-n]] ...
[Case Else
[autres instructions]]
End Select

28 Construire la structure des macros | Excel 2010.


8 Noms de macros réservés

Dans la plupart des cas, vous choisissez vous-même un nom pour la macro. Mais, dans de rares cas,
vous pouvez lui donner un nom spécial, réservé pour la macro.

8.1 Auto_Open ou Workbook_Open


La macro s'exécute automatiquement lorsqu'un classeur est ouvert.

8.2 Auto_Close ou Workbook_Close


La macro s'exécute automatiquement lorsqu'un classeur est fermé.
Si vous enregistrez la macro Auto_Open et Auto_Close dans le dossier de macros personnelles, elle
s’activera à l’ouverture et à la fermeture des fichiers.
Quelques exemples:

29 Noms de macros réservés | Excel 2010.


9 Développer une fonction

Nous pouvons également insérer des procédures nous-mêmes en VBA.

9.1 Créer une procédure


Pour ce faire, choisissez Insertion (Insert) – Procédure dans le menu de l'éditeur VBA pour–
procédure. Après cette action, vous obtenez une boîte de dialogue dans laquelle vous pouvez
introduire le nom de la procédure et indiquez s'il s'agit d'une fonction ou une sous-routine.

Un Sub est visible dans l'environnement Excel en tant que macro, une fonction est visible dans
l’environnement Excel en tant que fonction dans la catégorie User Defined.
Attention: Vous devez définir une fonction dans un module et pas dans une feuille de calcul sinon la
fonction n'est pas visible dans Excel.
Que la fonction soit privée ou publique, cela n’a pas beaucoup d’importance. Si vous définissez une
fonction comme privée, elle sera seulement « connue » dans le module où elle est définie.

30 Développer une fonction | Excel 2010.


Un morceau de code VBA est immédiatement ajouté.
Public Function OppCirkel()

End Function

9.2 Retrouver une fonction


Dans l'environnement d'Excel, nous retrouvons la fonction dans la catégorie User Defined.

Bien entendu, il n'y a encore aucun traitement, ni aucun argument défini pour la fonction
9.3 Finaliser la fonction
Nous pouvons également organiser le code pour effectuer un calcul, mais le but est aussi de spécifier
les arguments via la fenêtre d’arguments.
Pour ce faire, placez une variable à l'intérieur des parenthèses de la fonction en tant qu'argument.
Vous pouvez utiliser cette variable dans votre code.

31 Développer une fonction | Excel 2010.


Lorsque nous insérons la fonction en Excel, nous recevons une fenêtre d’arguments dans laquelle
nous pouvons sélectionner les données et le résultat sera affiché dans la cellule.

32 Développer une fonction | Excel 2010.


10 La différence entre macros et fonctions

Les macros et les fonctions sont toutes les deux des procédures. Une macro est une procédure qui
ne renvoie aucune valeur. Par contre, une fonction renvoie une valeur.
Dans le code pour une macro, vous pouvez voir qu’elles sont déclarées avec Sub.

Dans le groupe Code (Code), vous voyez le bouton Visual Basic. Ce bouton vous
donne accès à l’éditeur Visual Basic.

Alternativement, vous pouvez appeler les macros dans Excel à l'aide de la combinaison de touches
Alt-F8.

10.1 Appeler les macros ou les fonctions


Dans la fenêtre Immediate Window, vous pouvez rappeler une macro en tapant le nom de cette
macro, par exemple mcrCopyCells (VBA ne tient pas compte de la casse). La fenêtre
Immediat window est accessible dans l’éditeur VB.
Peut-être souhaitez-vous que cette fenêtre reste visible. Dans ce cas, vous pouvez utiliser le menu
Affichage (View)

33 La différence entre macros et fonctions | Excel 2010.


Pour déclarer une fonction, vous utilisez Function à la place de Sub. Vous pouvez appeler une
fonction dans les cellules d'une feuille de calcul, par exemple, = OppCirkel (A1). La fonction utilise la
valeur de la cellule en tant qu'argument.
Dans Immediate Window, vous utilisez : ? OppCirkel (3).

34 La différence entre macros et fonctions | Excel 2010.


10.2 L’utilisation d’arguments
Une autre différence entre macros et fonctions est l’utilisation d’arguments. Supposons que nous
ayons la macro suivante:
Sub MacroTest(s As String)
Debug.Print "Oui, "& s
End Sub

Appelons ensuite la macro dans la fenêtre d’affichage immédiat « Immediate Window» en tapant
soit MacroTest (“bien sûr!”) soit MacroTest“bien sûr!”. Le premier appel s'appelle appel par
fonction, le deuxième s’appelle appel par macro. Si nous utilisons plus d’un argument, comme dans
la macro suivante:
SubMacroNouveauTest(s As String, n as integer)
Debug.Print« oui, »&s
End Sub

alors l’appel par fonction MacroNouveauTest(“bien sûr!”, 2) ne fonctionne plus. Nous devons alors
utiliser l’appel par macro MacroNouveauTest“bien sûr!” , 2.

10.3 Fonctions renvoyant une valeur


Les fonctions renvoient une valeur; lorsque nous utilisons cette valeur dans une expression, nous
devons rappeler la fonction. La fonction suivante renvoie une valeur très simple :

35 La différence entre macros et fonctions | Excel 2010.


Function FunktieTest(s As String)
FunktieTest= s
End Function

Nous pouvons faire appel à ce type de fonctions par une instruction Debug.Print :
Debug.PrintFonctionTest("Oui, biensûr !"). Si nous ne faisons rien avec la valeur retournée, alors
nous devons invoquer la fonction comme si nous invoquions une macro. C'est-à-dire : avec un seul
argument, nous avons le choix de l’appel, avec plus d'un argument nous devons utiliser l’appel
macro.
Nous pouvons donc invoquer la fonction ci-dessus soit par l’instruction FonctionTest("Oui,biensûr!")
soit par l’instruction FonctionTest"Oui,biensûr!".
La fonction suivante:
FunctionFonctionNouveauTest(s asString,n as Integer)
FonctionNouveauTest=s
End Function

doit être appelée par l’instructionFonctionNouveauTest"Oui,biensûr!", 2.


Si on place un point d'interrogation en début d’instruction :
?FonctionNouveauTest("Oui,biensûr!",2), alors la valeur de la fonction est retournée.

10.4 Appel de macro “Call”


Vous pouvez également rappeler des macros et des fonctions via Call. Dans ce cas, vous devez
toujours insérer les arguments entre parenthèses.
Call macro (“bien sûr!”, 2)

Si vous appelez une fonction avec Call, vous ne pouvez rien faire avec la valeur qui est renvoyée.

36 La différence entre macros et fonctions | Excel 2010.


11 Etendre les fonctions et les macros Excel Add-in

Il est particulièrement utile d’étendre les formules ou les macros. Les fonctionnalités qui ont été
créées seront, de cette manière, également offertes aux autres utilisateurs. Nous allons ici
développer un Add-In pour offrir ces fonctionnalités aux autres utilisateurs.
11.1 Excel Add-in
Nous sauvons les fonctions et les macros supplémentaires dans un module du VBE ( Editeur Visual
Basic ). Ensuite, nous enregistrons le fichier en tant qu’Excel Add-in (extension.xlam).

11.2 Add-In disponible


Pour rendre un Add-In disponible, nous devons l’ajouter à l’application Excel de la manière suivante:
 Ouvrez l’environnement Backstage (Fichier (File)) et cliquez sur Options (Excel Options)
 Activez la catégorie Compléments (Add-Ins)

37 Etendre les fonctions et les macros Excel Add-in | Excel 2010.


 En bas de l’écran, vous voyez le groupe Gérer (Manage).
 Par défaut, Compléments Excel est sélectionnée (Excel Add-Ins).
 Cliquez sur Atteindre (Go).

Dans la fenêtre Macros complémentaires disponibles, vous trouvez les compléments déjà installés.
Nous en ajoutons en suivant la procédure ci-dessous :
 Cliquez sur Parcourir (Browse).

38 Etendre les fonctions et les macros Excel Add-in | Excel 2010.


 Sélectionnez le fichier souhaité

11.3 Utiliser de nouvelles fonctionnalités


Vous avez ajouté un complément (Add-In) à Excel en vous pouvez donc utiliser
les macros et fonctions complémentaires.

39 Etendre les fonctions et les macros Excel Add-in | Excel 2010.


Dans la catégorie User Define, vous retrouvez toutes les nouvelles fonctionnalités:

Vous pouvez également entrer des fonctions directement dans une cellule.

40 Etendre les fonctions et les macros Excel Add-in | Excel 2010.

Vous aimerez peut-être aussi