Macro - syllabi.eu 2010-Mod VII Macros FR-UK.pdf · Excel 2010 Module VII Les macros Sygma-D sprl...

43
Excel 2010 Module VII Les macros Sygma-D sprl ProsysInfo sprl Rue des Arts, 17 Rue du Déversoir 38 B - 1400 Nivelles B - 6200 Châtelet [email protected] [email protected] +32 (0)475.50.24.24 +32 (0)71.40.06.69 www.sygma-d.com

Transcript of Macro - syllabi.eu 2010-Mod VII Macros FR-UK.pdf · Excel 2010 Module VII Les macros Sygma-D sprl...

Excel 2010

Module VII

Les macros

Sygma-D sprl ProsysInfo sprl Rue des Arts, 17 Rue du Déversoir 38 B - 1400 Nivelles B - 6200 Châtelet [email protected] [email protected] +32 (0)475.50.24.24 +32 (0)71.40.06.69 www.sygma-d.com

2 Enregistrer une macro | Excel 2010.

Table des matières

1 Enregistrer une macro .............................................................................................. 4

1.1 Qu’est-ce qu’une macro? ................................................................................................. 4

1.2 L’onglet Développeur (Developer) ................................................................................... 4

1.3 Enregistrer une macro ...................................................................................................... 5

1.4 Exécuter une macro .......................................................................................................... 7

1.5 Annuler ou modifier une macro ....................................................................................... 7

1.6 Macros relatives et absolues ............................................................................................ 8

2 Lier une macro à un bouton ................................................................................... 10

2.1 Par le biais de bouton de barre d'outils pour un accès rapide ....................................... 10

2.2 Par le biais du bouton de ruban ..................................................................................... 13

2.3 Bouton de formulaire dans la feuille de calcul ............................................................... 14

2.4 Contrôles ActiveX dans une feuille de calcul .................................................................. 17

2.5 Lier des macros à des formes automatiques .................................................................. 19

3 Enregistrer des dossiers avec des macros ................................................................ 20

4 Sécurité des macros ............................................................................................... 22

4.1 Activer les macros lors de l'affichage de la barre de message ....................................... 22

4.2 Activer les macros dans l’environnement Backstage ..................................................... 22

4.3 Modifier les paramètres de Macro dans le Centre de gestion de la confidentialité ...... 23

4.4 Informations sur les paramètres de macro .................................................................... 24

4.4.1 Désactiver toutes les macros sans notification ......................................................... 24

4.4.2 Désactiver toutes les macros avec notification ......................................................... 24

4.4.3 Désactiver toutes les macros à l’exception des macros signées numériquement .... 24

4.4.4 Activer toutes les macros .......................................................................................... 24

4.4.5 Accès au modèle d’objet du projet VBA .................................................................... 24

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

5 Environnement de l’éditeur Visual Basic ................................................................. 26

5.1 Commentaire .................................................................................................................. 27

5.2 Sub …End Sub ................................................................................................................. 27

5.3 With… End With .............................................................................................................. 27

5.3.1 Indice de couleur ....................................................................................................... 27

5.3.2 Supprimez le code ..................................................................................................... 27

6 Blocs de construction VBA et Macro ....................................................................... 28

3 Enregistrer une macro | Excel 2010.

6.1 Fenêtres de message ...................................................................................................... 28

6.2 Fenêtres d’entrée ............................................................................................................ 28

6.3 Variables et constantes ................................................................................................... 28

6.3.1 Les différents types de données ............................................................................... 28

6.3.2 Variables .................................................................................................................... 28

6.3.3 Constantes ................................................................................................................ 28

6.3.4 Option explicit ........................................................................................................... 29

7 Construire la structure des macros .......................................................................... 30

7.1 Séquence ......................................................................................................................... 30

7.2 Sélection ou choix ........................................................................................................... 30

7.3 Itération ou répétition ................................................................................................... 30

7.3.1 Répétition conditionnelle .......................................................................................... 31

7.4 Questions à choix multiples ............................................................................................ 31

8 Noms de macros réservés ....................................................................................... 32

8.1 Auto_Open of Workbook_Open ..................................................................................... 32

8.2 Auto_Close of Workbook_Close ..................................................................................... 32

9 Développer une fonction ........................................................................................ 33

9.1 Créer une procédure ....................................................................................................... 33

9.2 Retrouver une fonction ................................................................................................... 34

9.3 Finaliser la fonction ......................................................................................................... 35

10 La différence entre macros et fonctions .................................................................. 36

10.1 Appeler les macros ou les fonctions ............................................................................... 36

10.2 L’utilisation d’arguments ................................................................................................ 38

10.3 Fonctions renvoyant une valeur ..................................................................................... 39

10.4 Appel de macro “Call” ..................................................................................................... 39

11 Etendre les fonctions et les macros Excel Add-in ..................................................... 40

11.1 Excel Add-in ..................................................................................................................... 40

11.2 Add-In disponible ............................................................................................................ 40

11.3 Utiliser de nouvelles fonctionnalités .............................................................................. 43

4 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 à 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 être effectuées par les utilisateurs moins expérimentés d’Excel – au moyen d'une macro. Par exemple, si nous souhaitons créer de manière automatique un fond de cellules rouge, nous pouvons enregistrer une macro qui colore l'arrière-plan des cellules en rouge.

Une macro 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

affiché par défaut.

Pour créer des macros en Excel, vous devez

afficher l’onglet Développeur. Nous le faisons

de la manière suivante:

5 Enregistrer une macro | Excel 2010.

Cliquez sur l’onglet Fichier (File) et choisissez

Options (Options).

Cliquez sur Personnaliser le ruban

(Customize Ribbon).

Cochez la case Développeur (Developer) dans la

partie droite de cette fenêtre.

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).

Excel affiche une boîte de dialogue dans laquelle vous pouvez écrire le nom de la macro.

6 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.

Donnez 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 de 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 sont enregistrées par Excel et, lorsque vous rappellerez la macro, elles seront à nouveau effectuées. Prenez soin de n'enregistrer que les actions indispensables. Pour cela, répétez éventuellement les actions avant de les enregistrer "pour du vrai".

7 Enregistrer une macro | Excel 2010.

Lorsque vous avez inclus toutes les commandes souhaitées, cliquez sur le bouton "Arrêter l’enregistrement" dans la barre d'Etat.

1.4 Exécuter une macro

Il existe différentes possibilités pour commencer l'exécution d'une macro :

Via le ruban : cliquez sur le bouton Macros dans le groupe Code (Code) de l'onglet Développeur (Developer).

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)

Excel affiche une boîte de dialogues reprenant 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 : soit vous la corrigez manuellement s’il s’agit d’une macro simple, soit vous l'annulez et la recommencez si c'est plus rapide ou plus simple.

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).

8 Enregistrer une macro | Excel 2010.

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 du code inutile dans le générateur de macro, ce qui peut ralentir son fonctionnement.

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

1.6 Macros relatives et absolues

Lors de l'enregistrement d'une macro, Excel stocke les adresses 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.

Voici le code de la macro :

9 Enregistrer une macro | Excel 2010.

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.

La macro prendra maintenant en compte l'emplacement de la cellule active.

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 au fonctionnement de la macro. Vous devez en tenir compte lors de l'enregistrement.

10 Lier une macro à un bouton | 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) ou 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.

Placer un bouton ActiveX sur la feuille de calcul.

Les macros peuvent également être liées à d'autres événements tels que l'ouverture d'une feuille de calcul. Nous en parlerons plus tard dans ce cours.

2.1 Ajouter un bouton dans la barre d'outil Accès Rapide

Cliquez sur la flèche de 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).

11 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 disponibles dans le classeur apparaissent dans la fenêtre de gauche.

12 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).

Le bouton Modifier (Modify), permet de changer le nom ou l’icône du bouton.

Vous obtenez le résultat suivant.

13 Lier une macro à un bouton | Excel 2010.

2.2 Ajouter un bouton dans le ruban

Cliquez sur l’onglet Fichier (File). L’environnement Backstage s’ouvre.

Cliquez sur Options.

Cliquez sur Personnaliser le ruban (Customize Ribbon).

Vous pouvez maintenant ajouter un nouvel onglet avec les groupes dans lesquels vous pouvez ajouter des macros.

Vous pouvez également modifier le titre de l'onglet ainsi que les noms des groupes.

14 Lier une macro à un bouton | Excel 2010.

Voici le résultat :

2.3 Ajouter un bouton de formulaire dans la feuille de calcul

Le bouton Insérer (Insert) du groupe Contrôles (Controls) contient deux parties : les contrôles de formulaire (FormControls) et les contrôles ActiveX (ActiveX Controls).

15 Lier une macro à un bouton | Excel 2010.

Dans cette barre d’outils, nous avons besoin d’un bouton. Cliquez sur le bouton. Le pointeur de la souris se transforme en croix. Placez-vous maintenant à l’endroit souhaité dans la feuille de calcul et faites glisser la souris en diagonale de gauche à droite. Lorsque vous relâchez le bouton de la souris, Excel affiche une fenêtre avec les macros disponibles. Si, pendant que vous dessinez le bouton, vous maintenez la touche Alt du clavier enfoncée, le bouton sera parfaitement placé sur les bords d'une cellule.

Nous utilisons ici les 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éé puis cliquez sur OK. Vous pouvez à présent modifier le texte du bouton, et lui donner le nom que vous voulez. En appuyant sur Enter, vous créez un nouveau paragraphe dans le bouton. Le texte écrit sur le bouton est totalement indépendant de la macro. C'est juste un outil d’aide pour l'utilisateur. Cliquez ensuite en dehors du bouton.

Si vous souhaitez modifier les propriétés du bouton par la suite (police différente, couleur, taille, texte ou macro,...), cliquer dessus avec le bouton de droite de la souris. Le menu contextuel permet de modifier les propriétés du bouton et les poignées de modifier sa taille. En cliquant dans le bouton, vous pouvez modifier son texte.

16 Lier une macro à un bouton | Excel 2010.

Assurez-vous que le bouton macro ne disparaisse pas lorsque vous filtrez les données.

Cliquez avec le bouton droit de la souris sur le bouton et choisissez Format de contrôle (Format Control). Indiquez dans l'onglet Propriétés (Properties) que le bouton ne doit pas être déplacé ou redimensionné avec les cellules.

17 Lier une macro à un bouton | Excel 2010.

2.4 Ajouter un Contrôles ActiveX dans une feuille de calcul

Le bouton Insérer (Insert) du groupe Contrôles (Controls) contient deux parties : les contrôles de formulaire (FormControls) et les contrôles ActiveX (ActiveX Controls).

Ces boutons semblent très similaires à ceux disponibles dans la 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 un code VBA et l’associer immédiatement au bouton.

Nous utilisons ici des contrôles ActiveX et dessinons un bouton sur la feuille de calcul.

Le bouton Mode Création (Design Mode) du groupe Contrôles (Controls) est actif. Vous pouvez aussi utiliser les boutons Propriétés (Properties) et Visualiser le code (View Code).

Un clic droit, sur le bouton permet de modifier ses Propriétés (Properties). Donnez immédiatement un nom clair au bouton.

18 Lier une macro à un bouton | Excel 2010.

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

19 Lier une macro à un bouton | Excel 2010.

Pour tester un bouton, vous devez 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.

2.5 Lier une macro à une forme automatique

Choisissez une forme automatique et placez-la dans votre feuille de calcul. Un clic droit vous permet d'assigner une macro à votre objet. Il est bien sûr possible d'en personnaliser la mise en forme.

20 Enregistrer des Classeurs avec des macros | Excel 2010.

3 Enregistrer des Classeurs avec des macros

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

Par défaut, l'extension des fichiers Excel est .xlsx. Ce format de fichier ne permet pas d’enregistrer les macros. Vous devez modifier manuellement l’extension de votre fichier en * .xlsm

Si vous oubliez d'effectuer cette action, Excel vous présente ce message d’avertissement :

21 Enregistrer des Classeurs avec des macros | Excel 2010.

22 Sécurité des macros | Excel 2010.

4 Sécurité des macros

Il se peut que vous ayez besoin d’utiliser certaines macros sur votre ordinateur pour travailler de manière efficace. Cela signifie qu’à un certain moment, vous devrez 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.

Les certificats numériques permettent de définir des niveaux de sécurité pour les macros et 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 contenant des macros, la barre de message jaune avec une icône et un bouton Activer le contenu (Enable content) apparaît.

Suivez les étapes suivantes si vous n’êtes pas certain de pouvoir faire confiance ou si vous ne savez pas que les macros viennent d'une source fiable :

Cliquez sur activer dans la barre de message,

Le fichier est ouvert et il s’agit d’un document de confiance.

Voici est un exemple de 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.

23 Sécurité des macros | Excel 2010.

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.

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 les utilisateurs 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 sur Options.

Cliquez sur Centre de gestion de la confidentialité (Trust Center) puis 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).

24 Sécurité des macros | Excel 2010.

Sélectionnez les options souhaitées. Cliquez sur OK.

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 confiance, 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 à l’éditeur.

4.4.4 Activer toutes les macros

Toutes les macros sont exécutées. Avec cette option, l'ordinateur est vulnérable à 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, 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. Cliquez sur la case de sélection pour accorder l’accès.

25 Sécurité des macros | Excel 2010.

4.5 Utiliser 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 sur Options.

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 puis cliquez sur OK.

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

5 Environnement de l’éditeur Visual Basic

Le bouton Visual Basic dans le groupe Code (Code) donne accès à l’éditeur Visual basic.

Vous pouvez aussi 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).

27 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 que vous souhaitez effectuer plusieurs actions sur un objet particulier ou que vous souhaitez modifier plusieurs propriétés.

5.3.1 Indice de couleur

Le code de selection.interior.color = 255 donne 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 testez le fonctionnement de la macro. Si tout va bien, revenez à l'éditeur VBA et supprimez définitivement les instructions.

28 Blocs de construction VBA et Macro | 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 indiquant le bouton choisi par l'utilisateur.

Syntaxe : MsgBox(prompt[, Buttons] [, title] [, helpfile, context])

6.2 Fenêtres d’entrée

La fenêtre d'entrée invite 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 savez 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, 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 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. 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.

29 Blocs de construction VBA et Macro | Excel 2010.

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 déclaration explicite des variables, en ajoutant 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 lui attribue 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.

30 Structure des macros | Excel 2010.

7 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 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.

31 Structure des macros | Excel 2010.

Contrainte de répétition

Syntaxe:

Forcompteur=Valeur_initialeTovaleur_finale [Stepstap] [instructions] [Exit For] [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

32 Noms de macros réservés | 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 à l'ouverture d'un classeur.

8.2 Auto_Close ou Workbook_Close

La macro s'exécute automatiquement à la fermeture d'un classeur.

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:

33 Développer une fonction | Excel 2010.

9 Développer une fonction

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

9.1 Créer une procédure

Choisissez Insertion (Insert) – Procédure dans le menu de l'éditeur VBA. Excel affiche une boîte de dialogue dans laquelle vous pouvez introduire le nom de la procédure et indiquer 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 "reconnue" dans le module où elle est a été définie.

34 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

Nous retrouvons la fonction dans la catégorie User Defined de l'environnement Excel.

Nous n'avons encore défini ni traitement, ni argument pour cette fonction

35 Développer une fonction | Excel 2010.

9.3 Finaliser la fonction

Nous pouvons organiser le code pour effectuer un calcul, mais le but est aussi de spécifier les arguments via la fenêtre d’arguments.

Pour cela, placez une variable à l'intérieur des parenthèses de la fonction en tant qu'argument. Vous pouvez utiliser cette variable dans votre code.

Lorsque nous insérons la fonction en Excel, une fenêtre d’arguments s'affiche. Nous pouvons y sélectionner les données. Le résultat sera affiché dans la cellule.

36 Différence entre Macros et Fonctions | Excel 2010.

10 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.

Le code d'une macro est déclaré avec Sub.

Le bouton Visual Basic du groupe Code (Code) donne accès à l’éditeur Visual Basic.

Vous pouvez aussi appeler les macros d'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 son nom, par exemple mcrCopyCells (VBA ne tient pas compte de la casse). La fenêtre Immediate window est accessible dans l’éditeur VBA.

Peut-être souhaitez-vous que cette fenêtre reste visible. Dans ce cas, utilisez le menu Affichage (View)

37 Différence entre Macros et Fonctions | Excel 2010.

Pour déclarer une fonction, 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, utilisez : ? OppCirkel (3).

38 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 second 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

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

39 Différence entre Macros et Fonctions | Excel 2010.

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 :

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 (“biensûr!”, 2)

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

40 Etendre les fonctions et les macros Excel Add-in | 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

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, il faut 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)

41 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 :

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

Cliquez sur Parcourir (Browse).

Sélectionnez le fichier souhaité

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

11.3 Utiliser de nouvelles fonctionnalités

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

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

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