Analyse d’une macro VBA [#04 FORMATION EXCEL VBA COMPLETE]

Dans le chapitre précédent nous avions vu à quel point il est simple de créer une macro VBA.

En effet, il est tout à fait possible de créer une mini-application en quelques minutes (application de pointage horaires), sans même devoir saisir une seule ligne de code ! En revanche, il arrive forcément un moment où l’enregistreur montre ses limites, et la compréhension du langage VBA et des méthodes de construction des macros vont être nécessaires.

Cette formation doit être accessible à tout le monde, c’est pourquoi, nous allons détailler dans les moindres détails chaque aspect du développement VBA.

Ce chapitre s’adresse par conséquent aux débutants, c’est-à-dire aux personnes qui n’ont encore jamais eu l’occasion de coder d’application, quel qu’en soit le langage. Cela dit, il fera également office de piqure de rappel pour les personnes un peu plus expérimentées.

Dans ce tutoriel, nous allons aborder de nombreuses notions assez rapidement, mais ne vous en faite pas, le but est uniquement de les présenter, nous reviendrons sur chacune d'entre elles plus dans le détail dans les prochains chapitres.

Sachez également si vous n'avez encore jamais programmé que par essence le langage VBA (comme pratiquement tous les langages de programmation d'ailleurs) est en anglais. Mais là encore, pas de panique, ce sont juste des instructions simples que l'on peut utiliser sans même avoir besoin d'en connaître la traduction en français (il suffit de savoir ce qu'elle vont réaliser) ! 

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

 

 

Tutoriel Vidéo

Vous trouverez très régulièrement de nouvelles vidéos sur la chaîne, alors pensez à vous abonner pour ne manquer aucune astuce et devenir rapidement un pro d’Excel (cliquez-ici) !

 

1. Le code est inséré dans un module

Pour commencer, revenons sur le code de la macro que nous avions créée automatiquement dans le chapitre précédent.

Pour rappel, pour lancer l’éditeur de macro VBA, nous cliquons sur le bouton Visual Basic depuis le menu Développeur :

Excel formation - VBA04 Analyse d'une macro VBA - 01

Lorsque VBE est lancé, pour retrouver le code enregistré par Excel, nous double-cliquons sur le Module3 depuis l’explorateur de projet :

Excel formation - VBA04 Analyse d'une macro VBA - 02

Nous venons ici d’introduire la première notion de ce chapitre : les modules !

Pour faire simple et rapide, un module est une feuille de saisie dans laquelle nous allons venir le code VBA. Il est également possible de saisir du code directement dans le code du classeur, ou encore dans le code des feuilles de calculs (qui en réalité sont également des Modules), mais cela sera l’objet d’un chapitre à venir. Retenez simplement que pour être utilisé normalement, le code VBA est inséré dans un Module.

Il existe deux types de modules : les modules de code et les modules de classe. Le module de code est celui que nous avons sous les yeux, tandis que le module de classe permet de saisir les propriétés et paramètres de classes. En l’état actuel des choses, vous pouvez également oublier ce second type, nous n’y reviendront qu’en toute fin de formation !

Pour créer un nouveau module, rendez-vous dans Insertion > Module :

Excel formation - VBA04 Analyse d'une macro VBA - 03

Puis nous double-cliquons sur Module4 pour afficher la feuille de code :

Excel formation - VBA04 Analyse d'une macro VBA - 04

Évidemment, pour le moment celle-ci est vide.

 

2. Le code est composé de procédures

Lorsque nous avons double-cliqué sur le Module3, VBE nous a présenté sur la partie droite le code contenu dans celui-ci.

Nous y retrouvons alors les deux procédures que nous avons générées automatiquement.

De retour dans le Module4, nous allons maintenant saisir notre première procédure !

Une procédure est ensemble d’instructions qui permet de réaliser une opération, ou une série d’opérations.

Dans notre exemple, les procédures commencent par le mot-clé « Sub », suivi de son nom et se termine par le mot-clé « End Sub » :

 

 Sub maProcedure()
    MsgBox "Bienvenue sur Excelformation.fr"
End Sub 

 

Excel formation - VBA04 Analyse d'une macro VBA - 05

Nous nous contentons ici d’afficher un message à l’écran.

De cette manière, lorsque nous l’appellerons (en cliquant sur un bouton, depuis la fenêtre de lancement de macro, ou par n’importe quel autre moyen), Excel exécutera tout ce qui est saisi entre ces deux mots-clés.

Excel formation - VBA04 Analyse d'une macro VBA - 06

Lorsque l’on clique sur le triangle vert, le message s’affiche alors dans la feuille de calcul :

Excel formation - VBA04 Analyse d'une macro VBA - 07

Il existe deux types de procédures :

  • Les procédures de type Sub, que nous venons de voir qui permettent d’exécuter un certain nombre d’opération,
  • Les procédures de type Function, qui en plus d’exécuter des opérations va retourner un résultat. Pour imager ce type de procédure, nous pouvons les comparer aux formules d’Excel : elles nécessitent un certain nombre de paramètres (ou pas) en entrée, puis retournent un résultat en sortie

 

Function maFonction(parametre1, parametre2,…)
     …. 
    maFonction = resultat
End Function

Voici un exemple de procédure de type Function :

 

 Function monAddition(a, b)
    monAddition = a + b
End Function 

 

Excel formation - VBA04 Analyse d'une macro VBA - 08

Nous retrouvons ici une fonction qui prend deux paramètres (que l’on appelle également des arguments) nommés a et b, et qui retourne comme résultat leur somme.

Évidemment, une fonction ne peut pas être appelée directement par un simple bouton car celui-ci ne transmettrait pas les paramètres.

Il est nécessaire de passer par une procédure de type Sub :

Excel formation - VBA04 Analyse d'une macro VBA - 09

Ces deux procédures combinées permettent d’afficher la somme de 10 et de 20 :

Excel formation - VBA04 Analyse d'une macro VBA - 10

 

3. La procédure est composée…

 

   3.1. … de variables

 

La variable est l’élément clé du développement, que ce soit en VBA ou dans n’importe quel autre langage.

En effet, celle-ci permet de stocker une information afin de pouvoir la réutiliser, la retraiter, …

Le principe d’une variable est d’associé une valeur à un élément qui possède un nom :

 

 Function monAddition(a, b)
    calcul = a + b
    monAddition = calcul
End Function 

 

Excel formation - VBA04 Analyse d'une macro VBA - 11

Dans cet exemple nous créons une variable qui porte le nom de « calcul » et à laquelle nous affectons comme valeur la somme de a et de b.

Puis nous récupérons cette valeur stockée dans la variable pour retourner le résultat à la procédure.

 

   3.2. … de sous-procédures

 

Il s’agit ici de procédures exécutées directement depuis une autre procédure.

C’est ce que nous avons vu juste avant, dans la partie précédente :

Excel formation - VBA04 Analyse d'une macro VBA - 12

Nous y appelons en effet la procédure monAddition depuis la procédure maProcédure.

 

   3.3. … d’objets

 

Un objet est en quelque sorte une super variable qui est elle-même composée de propriétés (c’est-à-dire des variables propres à cet objet) et méthodes (c’est-à-dire des procédures qui permettent d’agir sur cet objet).

Un objet est également composé de sous-objets !

Il est de coutume d’imager la notion d’objet dans un langage de programmation en le comparant avec une voiture.

Une voiture est en effet composée :

  • De propriétés (couleur, marque, …)
  • De méthodes (démarrer le moteur, allumer le chauffage, …)
  • De sous-objets : moteur, roues, … qui possèdent eux-mêmes des propriétés, instructions et sous-objets !

En programmation, chacun de ces éléments est organisé hiérarchiquement, en étant séparé par un point :

  • maVoiture.couleur = "rouge" : permettrait de changer la propriété couleur de l’objet maVoiture en rouge,
  • maVoiture.monMoteur.demarrer() : permettrait de lancer l’instruction demarrer() du sous-objet monMoteur (lui-même objet de maVoiture)

Dans le langage VBA, l’objet principale que l’on manipule est l’objet Application, et en particulier ses propres sous-objets qui permettent de manipuler :

  • le classeur : workbook,
  • les feuilles de calculs : worksheet,
  • les cellules et plages de cellules : range,
  • les graphiques, images,…

Ces objets sont déjà créés et instanciés, et ne demandent qu’à être manipulés !

 

   3.4. … d’éléments logiques

 

Un élément logique permet d’organiser le cheminement du code en traçant le déroulement des opérations.

Cela peut consister par exemple à effectuer des test, grâce à l’élément If :

 

 Function monMaximum(a, b)
    If a > b Then
        monMaximum = a
    Else
        monMaximum = b
    End If
End Function 

 

Excel formation - VBA04 Analyse d'une macro VBA - 13

Ici nous cherchons à comparer deux nombres.

Nous effectuons un premier test, si a est supérieur à b, alors nous retournons la valeur de a, et dans le cas contraire celle de b.

Un élément logique peut également consister à boucler une partie de code tant qu’une condition est remplie :

 

 Sub compter()
    For i = 1 To 3
        MsgBox i
    Next
End Sub 

 

Excel formation - VBA04 Analyse d'une macro VBA - 14

Ici nous utilisons une boucle For pour compter de un à trois.

Si cela peut paraître assez complexe, ne vous en faites pas, nous aborderons chacun de ces points dans le détail au cours des chapitres à venir !

 

   3.5. … de commentaires

 

Le dernier point que nous allons voir concernant la programmation VBA est justement un élément qui sera purement… ignoré lors de son exécution !

Il s’agit en effet des commentaires, qui ne sont pas destinés à Excel comme n’importe quel autre aspect que nous venons de voir jusqu’à maintenant, mais qui permettent au contraire de conserver des informations sur le code tapé. Cela permet ainsi par exemple de décrire ce qui est fait, de décrire une logique mise en place, d’expliquer les différentes variables instanciés…

Bien souvent les commentaires sont négligés par les développeurs (moi le premier d’ailleurs), alors qu’ils permettent de rendre le code bien plus clair, notamment lorsque celui devra être repris par d’autres personnes, ou bien plus tard.

Les commentaires s’utilisent simplement avec une apostrophe. Tout ce qui suit sera alors affiché en vert et sera ignoré par Excel :

Excel formation - VBA04 Analyse d'une macro VBA - 15

Évidemment, lorsqu’une apostrophe est insérée au sein d’une chaîne de caractères alors Excel comprend bien qu’il ne s’agit pas d’un commentaire :

Excel formation - VBA04 Analyse d'une macro VBA - 16

Et voilà, normalement après ce petit aperçu de la composition des macro VBA, vous devriez déjà être en mesure de construire de simples petites instructions. Nous reviendrons sur les points abordés au cours des différents chapitres à venir !

 



Articles qui pourraient vous intéresser

Comment lancer une macro VBA (13 méthodes !) [#08 FORMATION EXCEL VBA COMPLETE]

Les tableaux croisés dynamiques, c’est facile !

Dates et heures sur Excel : #05 Comment calculer l'âges et l’ancienneté sur Excel

Tout sur les procédures Function en VBA [#07 FORMATION EXCEL VBA COMPLETE]

Commentaires

Il n'y a aucun commentaire...

Poster un commentaire

Pseudo
Commentaire

Contact - Plan du site - À propos - Contact

© Excel-Formation 2018 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.