0% ont trouvé ce document utile (0 vote)
108 vues

Cours VBA

Ce document décrit l'utilisation du langage de programmation Visual Basic for Applications (VBA) dans Excel. Il présente les concepts de base de la création de macros VBA, notamment la création d'une simple macro, son exécution à partir d'un bouton, et la sélection de feuilles et de cellules à l'aide de VBA.

Transféré par

appolinairewara
Copyright
© © All Rights Reserved
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
108 vues

Cours VBA

Ce document décrit l'utilisation du langage de programmation Visual Basic for Applications (VBA) dans Excel. Il présente les concepts de base de la création de macros VBA, notamment la création d'une simple macro, son exécution à partir d'un bouton, et la sélection de feuilles et de cellules à l'aide de VBA.

Transféré par

appolinairewara
Copyright
© © All Rights Reserved
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 90

Excel Avancé

Deuxième partie: Visual basic for Application (VBA)

Komi Maza-Balo T. AYOLA


Actuaire IA France
Chef service administratif et financier
CNSS KARA

UNIVERSITE DE KARA

Mousson 2022-2023
Visual Basic for Application (VBA)

Sommaire

Exécution de macro à Les procédures et les


1 Visual Basic for partir d’un bouton (1) fonctions
Application (VBA) Les feuilles et cellules Les boites de dialogue
Introduction Les variables Les formulaires et
Création d’une macro Les conditions contrôles
simple Les boucles

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 2 / 90
Visual Basic for Application (VBA) Introduction

VBA, qu’est-ce que c’est ?

Le VBA est un langage qui nécessite une application hôte pour s’exécuter (Excel dans
notre cas). Grâce à VBA nous allons réaliser à peu prêt tout ce que nous voulons avec
Excel.

Affichage des outils


Fichier → Options → Personnaliser le ruban puis cocher Développeur . Pour travailler
avec le code VBA, il faut un éditeur de code qui peut s’ouvrir en faisant alt + F11

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 3 / 90
Visual Basic for Application (VBA) Introduction

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 4 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Qu’est-ce qu’une macro

Définition 1.1: Une macro


Une macro est une instruction ou une suite d’instructions indiquant à Excel une suite
d’opérations à réaliser.

Si dans Microsoft Excel, vous effectuer fréquemment certaines taches, vous pouvez
enregistrer une macro pour les automatiser.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 5 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 6 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Un exemple simple

Considérons le tableau précédent. Nous allons automatiser les opérations suivantes :


Effacer le contenu des colonnes A et C
Déplacer le contenu de la colonne B dans la colonne A
Déplacer le contenu de la colonne D dans la colonne C

Pour ce faire :
1 Dans la barre de menu cliquer sur l’onglet Développeur
2 Cliquer sur Enregistrer une macro puis sur OK
3 Exécuter les opérations ci-dessus sans interruption (car toutes les manipulations
sont enregistrées)
4 Pour terminer cliquer sur Arrêter l’enregistrement

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 7 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 8 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Exécuter la macro

1 Se placer sur une feuille vide


2 Dans l’onglet Développeur , cliquer sur Macro
3 Une fenêtre s’ouvre ; choisir le nom de la macro (ici Macro1) puis cliquer sur Exécuter
La macro s’exécute de la même manière – mais plus rapidement – que si nous effectuons
nous-même ces commandes une par une

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 9 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 10 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Modification de la macro

Pour visualiser le code on fait alt + F11 ou en suivant les étapes suivantes :
1 Onglet Développeur puis Macro
2 cliquer sur Modifier
3 Toutes les commandes enregistrées apparaissent, codées en VBA. Ces commandes
peuvent être modifiées avec une bonne connaissance du VBA.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 11 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 12 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Modification de la macro (2)


Le début et la fin de la macro

Les constituants du la macro VBA (1)


Sub et End Sub le début et la fin de la macro. Macro1 correspond au nom de
cette macro.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 13 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Modification de la macro (3)


Modification du nom de la macro

Les constituants du la macro VBA (2)


Nous allons maintenant modifier le nom de cette macro et lui attribuer un nom
qui soit un peu plus parlant. Pour cela, remplacez simplement Macro1 par
manipulationsDesColonnes (le nom ne doit pas contenir d’espaces) :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 14 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Modification de la macro (4)


Les commentaires

Le texte en vert (texte précédé d’une apostrophe) est un commentaire, il n’est pas pris
en compte à l’exécution du code :

Les commentaires sont très utiles pour s’y retrouver lorsque l’on dispose de beaucoup
de code ou pour ne pas exécuter certaines lignes de code sans pour autant les supprimer.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 15 / 90
Visual Basic for Application (VBA) Création d’une macro simple

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 16 / 90
Visual Basic for Application (VBA) Exécution de macro à partir d’un bouton (1)

Création du bouton et affectation de la macro

Nous souhaitons maintenant que cette macro s’exécute en cliquant sur un bouton. Insérez
un bouton en cliquant sur Insérer puis sur Bouton (Contrôles de formulaires) :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 17 / 90
Visual Basic for Application (VBA) Exécution de macro à partir d’un bouton (1)

Exécution de macro à partir d’un bouton (2)

Tracez votre bouton et sélectionnez ensuite simplement votre macro :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 18 / 90
Visual Basic for Application (VBA) Exécution de macro à partir d’un bouton (1)

Exécution de macro à partir d’un bouton (3)

Lorsque vous cliquerez sur le bouton, la macro sera exécutée :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 19 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (1)


Sélection d’une cellule

Nous allons créer une macro qui sélectionnera une cellule de notre choix. Ouvrez l’éditeur et
ajoutez-y un module

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 20 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (2)


Sélection d’une cellule

Dans le module, tapez sub exemple et appuyer sur entrée.

Créez maintenant un bouton de formulaire auquel vous associer cette macro (vide pour le
moment)

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 21 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (3)


Sélection d’une cellule

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 22 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (4)


Sélection d’une cellule

completer votre macro avec ceci :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 23 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (5)


Sélection d’une cellule

Vous pouvez tester cette macro en cliquant sur votre bouton de formulaire, la cellule A8 est
alors sélectionnée. Nous allons maintenant modifier cette macro pour sélectionner la cellule
A8 de la seconde feuille :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 24 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (6)


Sélection d’une plage de cellules

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 25 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (7)


Sélection de cellules distinctes

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 26 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (8)


Sélection d’une plage de cellules nommée (1)

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 27 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (8)


Sélection d’une plage de cellules nommée (2)

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 28 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (9)


Sélection d’une cellule en fonction du numéro de ligne et de colonne

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 29 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Cette autre manière de sélectionner permet des sélections plus dynamiques et sera bien utile
par la suite. En voici un petit exemple :

Ici, le numéro de ligne est Int(Rnd * 10) + 1, autrement dit un nombre entre 1 et 10 (inutile
de retenir ce code pour le moment). La fonction Rnd (Random) est la fonction qui génère un
nombre aléatoire entre 0 et 1.
Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 30 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (10)


Sélection de lignes

Il est possible de sélectionner des lignes entières avec Range ou Rows (Rows étant spécifique
aux lignes) :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 31 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les sélections (11)


Sélection de colonnes

Tout comme pour les lignes, il est possible de sélectionner des colonnes entières avec Range
ou Columns (Columns étant spécifique aux colonnes) :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 32 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les propriétés

Nous allons maintenant agir sur le contenu et l’apparence des cellules et des feuilles. Pour
cela écrivez la macro proprietes (incomplete) suivante que nous allons completer au fur et à
mesure.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 33 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Pour afficher la liste des possibilités que l’on peut associer à l’objet Range, ajoutez un .
après Range("A8") :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 34 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Pour ce premier exemple, cliquez sur Value puis appuyez sur la touche Tab pour valider ce
choix :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 35 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

La propriété Value représente ici le contenu de la cellule.


Nous voulons maintenant donner la valeur 48 à la cellule A8 puis la valeur Exemple de texte
à A8 (le texte doit être mis entre " ") :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 36 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Pour modifier la cellule A8 de la feuille 2 en cliquant sur le bouton de la feuille 1, il faut


préciser le nom de la feuille en ajoutant Sheets("Nom de la feuille") avant Range :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 37 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

De même, si l’on souhaite modifier la cellule A8 de la feuille 2 d’un autre classeur ouvert, il
faut préciser le nom du classeur en début de ligne à l’aide de
Workbooks("Nom du fichier") :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 38 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les propriétés
Mise en forme du texte

Après avoir sélectionné la propriété Font et ajouté un ., la liste des propriétés que l’on peut
attribuer à la mise en forme du texte apparaît :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 39 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les propriétés
Mise en forme : taille du texte et texte en gras

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 40 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les propriétés
Exercice

Exercice
1 Comment met-on un texte en italique ?
2 Comment souligner un texte ?
3 Comment modifier la police d’un texte ?

Remarque 1.1

Seule petite partie des possibilités de personnalisation sont indiquées ici. Si la propriété
dont vous avez besoin n’est pas détaillée ici, vous pouvez utiliser l’enregistreur de macro
pour vous éviter de longues recherches.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 41 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les propriétés
Modifier la valeur d’une cellule en fonction d’une autre

Nous voulons que A7 prenne la valeur de A1, ce qui nous donne :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 42 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les propriétés
Modifier la valeur d’une cellule en fonction de sa propre valeur

Nous allons maintenant créer ici un compteur de clics. A chaque clic, la valeur de A1 sera
augmentée de 1 :

Remarque 1.2

Cette ligne ne doit pas être interprétée comme une opération mathématique (rappelez-
vous que ce qui est à gauche du = prend la valeur de ce qui est à droite du =).
Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 43 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les propriétés
With

Ce code permet de définir différentes propriétés à la cellule A8 de la feuille 2 :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 44 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Nous pouvons utiliser With pour éviter les répétitions de


Sheets("Feuil2").Range("A8") . Sheets("Feuil2").Range("A8") n’est donc plus
répété.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 45 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Bien que ce ne soit pas indispensable dans ce cas, il est également possible de faire de même
pour .Font, ce qui nous donnerait :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 46 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les couleurs

Attribuons une couleur au texte dans la cellule A1. Pour cela on ajoute Font. on obtient :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 47 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les couleurs
ColorIndex (1)

Pour définir une couleur, il existe deux possibilités :


ColorIndex et ses 56 couleurs et
Color qui nous permet d’utiliser n’importe quelle couleur.
Voici ci-dessous les 56 couleurs disponibles avec ColorIndex :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 48 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les couleurs
ColorIndex (2)

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 49 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les couleurs
Color

RGB en français signifie RVB (Rouge


Voici un exemple similaire avec Color Vert Bleu), les valeurs vont de 0 à 255
pour chaque couleur.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 50 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les couleurs
Un exemple avec Color

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 51 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les couleurs
Créer une bordure colorée

Nous allons créer une macro qui va ajouter une bordure à la cellule active avec ActiveCell .

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 52 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les couleurs
Colorer le fond des cellules sélectionnées

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 53 / 90
Visual Basic for Application (VBA) Les feuilles et cellules

Les couleurs
Colorer l’onglet d’une feuille

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 54 / 90
Visual Basic for Application (VBA) Les variables

Variables

Les variables permettent de stocker toute sorte de données

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 55 / 90
Visual Basic for Application (VBA) Les variables

Dim : déclaration de la variable


maVariable : nom choisi pour cette variable (sans espaces)
As : déclaration du type de la variable
Integer : type de la variable

Remarque 1.3

MsgBox est une boite de dialogue. Nous y reviendrons plus loin.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 56 / 90
Visual Basic for Application (VBA) Les variables

Les variables
Les types de variables

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 57 / 90
Visual Basic for Application (VBA) Les variables

Exercice
1 Ecrire une macro qui va récupérer le nom dans la cellule A2, le prénom dans la
cellule B2, l’âge dans la cellule C2 et qui va les afficher dans une boîte de
dialogue.
2 Modifier ce code en affichant dans la boite de dialogue la ligne du tableau
correspondant au numéro indiqué dans la cellule F5.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 58 / 90
Visual Basic for Application (VBA) Les variables

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 59 / 90
Visual Basic for Application (VBA) Les variables

Les variables (partie 2)


Les tableaux

Les variables permettent de stocker une seule valeur par variable, les tableaux permettent de
stocker une multitude de valeurs par tableau (leur utilisation est proche de celle des
variables).

tab1(4) est un tableau dont les cases vont


de 0 à 4, il s’agit donc d’un tableau
comportant 5 cases.

tab1(4,3) est un tableau qui comporte 20


cases.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 60 / 90
Visual Basic for Application (VBA) Les variables

Les variables (partie 2)


les valeur d’un tableau

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 61 / 90
Visual Basic for Application (VBA) Les variables

Les variables (partie 2)


les valeur d’un tableau

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 62 / 90
Visual Basic for Application (VBA) Les variables

Les constantes

Les constantes permettent de stocker des valeurs comme les variables, à la différence près
qu’on ne peut pas les modifier (d’où leur nom) après les avoir déclarées.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 63 / 90
Visual Basic for Application (VBA) Les variables

La portée des variables

Si la variable est déclarée au début d’une procédure (Sub), elle ne peut être utilisée que
dans cette même procédure. La valeur de la variable n’est pas conservée après
l’exécution de la procédure.
Pour pouvoir utiliser une variable dans toutes les procédures d’un module, il suffit de la
déclarer en début de module. De plus, cela permet de conserver la valeur de la variable
jusqu’à la fermeture du classeur.
Même principe pour utiliser une variable dans tous les modules, à la différence près que
Dim est remplacé par Public :
Pour conserver la valeur d’une variable à la fin d’une procédure, remplacez Dim par
Static.
Pour conserver les valeurs de toutes les variables d’une procédure, ajoutez Static devant
Sub

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 64 / 90
Visual Basic for Application (VBA) Les conditions

Conditions

Les conditions servent à effectuer des actions en fonction de critères précis (même principe
que la fonction SI). La principale instruction est If, voici comment elle fonctionne :

Reprenons le code de l’exercice précédent. Si nous entrons une lettre en F5, cela génère un
bug et nous voulons éviter cela. La fonction IsNumeric sera utilisée dans cette condition :
Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 65 / 90
Visual Basic for Application (VBA) Les conditions

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 66 / 90
Visual Basic for Application (VBA) Les conditions

Conditions
Les opérateurs

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 67 / 90
Visual Basic for Application (VBA) Les conditions

Exercice
Notre tableau contient 13 lignes de données (de la ligne 2 à la ligne 14), modifier
le code vérifier si la variable numeroLigne est plus grande ou égale à 2 et plus
petite ou égale à 15.

ElseIf
ElseIf permet d’ajouter plusieurs conditions à la suite :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 68 / 90
Visual Basic for Application (VBA) Les conditions

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 69 / 90
Visual Basic for Application (VBA) Les conditions

Une alternative aux instructions If


contenant beaucoup de ElseIf existe, il
s’agit de Select (cette instruction étant
plus adaptée dans ce genre de cas).

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 70 / 90
Visual Basic for Application (VBA) Les boucles

Les boucles permettent de répéter des


instructions un certain nombre de fois
pour vous éviter de devoir écrire des
macros d’une longueur interminable et
vous faire gagner un temps considérable

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 71 / 90
Visual Basic for Application (VBA) Les boucles

Do Loop

Ce code est très répétitif. Maintenant, imaginez qu’il faille numéroter plusieurs milliers de
lignes ... Vous comprenez donc probablement l’intérêt de créer des boucles.
Voici la boucle Do :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 72 / 90
Visual Basic for Application (VBA) Les boucles

Avec Do, la condition peut également Plutôt que de répéter la boucle tant que
être placée en fin de boucle, ce qui la condition est vraie, il est possible de
implique que les instructions seront dans quitter la boucle lorsque la condition est
tous les cas exécutées au moins une fois vraie en remplaçant While par Until :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 73 / 90
Visual Basic for Application (VBA) Les boucles

For Next

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 74 / 90
Visual Basic for Application (VBA) Les boucles

For Each Next

La boucle For Each permet de parcourir chaque élément d’un ensemble d’éléments, par
exemple parcourir chaque cellule d’une plage de cellules :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 75 / 90
Visual Basic for Application (VBA) Les procédures et les fonctions

Public - Private
Pour le moment, toutes les procédures créées sont de type Public, elles sont accessibles
depuis tous les modules. Ainsi Sub exemple () est identique à Public Sub exemple ()

Lancer une procédure depuis une procéduire


Pour exécuter une procédure depuis une autre procédure, entrez simplement son nom.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 76 / 90
Visual Basic for Application (VBA) Les procédures et les fonctions

Les arguments

Les arguments permettent de transmettre des valeurs d’une procédure à une autre (car
rappelez-vous que par défaut les variables ne sont pas accessibles depuis les autres
procédures). En cas d’arguments multiples, ceux-ci doivent être séparés par des virgules.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 77 / 90
Visual Basic for Application (VBA) Les procédures et les fonctions

Les arguments optionnels

Private Sub boiteDialogue(nom As String, Optional prenom As string, Optional


age, As Integer)

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 78 / 90
Visual Basic for Application (VBA) Les procédures et les fonctions

ByRef - ByVal

Par défaut, les arguments sont de type ByRef ce qui signifie que, si une variable est passée
en argument, c’est sa référence qui est transmise. Autrement dit, si la variable est modifiée
dans la sous-procédure, elle le sera également dans la procédure d’appel.

Contrairement à ByRef qui fait directement référence à la variable, ByVal transmet


uniquement sa valeur, ce qui signifie que la variable passée en argument ne subit aucune
modification.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 79 / 90
Visual Basic for Application (VBA) Les procédures et les fonctions

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 80 / 90
Visual Basic for Application (VBA) Les procédures et les fonctions

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 81 / 90
Visual Basic for Application (VBA) Les procédures et les fonctions

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 82 / 90
Visual Basic for Application (VBA) Les procédures et les fonctions

Les fonctions

La principale différence entre Sub et Function est qu’une fonction retourne une valeur.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 83 / 90
Visual Basic for Application (VBA) Les boites de dialogue

MsgBox - InputBox

MsgBox
C’est une boîte de dialogue pour afficher une information
Il peut être utilisé à la fois comme une procédure ou une fonction. Si vous avez besoin
de connaître le choix de l’utilisateur et donc obtenir une valeur en retour, utilisez
MsgBox en tant que fonction en ajoutant des () aux arguments.

InputBox
La fonction InputBox demande à l’utilisateur d’entrer une valeur dans une boîte de dialogue.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 84 / 90
Visual Basic for Application (VBA) Les boites de dialogue

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 85 / 90
Visual Basic for Application (VBA) Les formulaires et contrôles

UserForm

Pour ajouter un UserForm, procédez de la même manière que pour un nouveau module.

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 86 / 90
Visual Basic for Application (VBA) Les formulaires et contrôles

UserForm

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 87 / 90
Visual Basic for Application (VBA) Les formulaires et contrôles

Une fenêtre des propriétés du formulaire s’ouvre (sinon l’ouvrir pour en faisant F4). Vous
pouvez modifier ses propriétés.

Titre du UserForm
Pour modifier le titre du UserForm, modifiez sa propriété Caption :

Dimension du UserForm
Pour modifier les dimensions de l’UserForm, modifiez ses propriétés Width et Height ou
redimensionnez le UserForm à la main : :

Lancer un UserForm
Pour lancer un UserForm à partir d’une
procédure, utilisez Show :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 88 / 90
Visual Basic for Application (VBA) Les formulaires et contrôles

Les contrôles

Les contrôles sont les éléments (boutons, intitulés, zone de texte, cases à cocher, etc.) qui
peuvent être insérés sur un UserForm (ou sur une feuille Excel).
Les contrôles ont également toute une panoplie de propriétés et d’événements qui diffèrent
d’un contrôle à l’autre.

1 Pour commencer, ajoutez un UserForm et insérez les 3 contrôles suivants : un intitulé


Label , une zone de texte TextBox et un bouton CommandButton .
2 Modifiez les propriétés du UserForm et des contrôles (dont les propriétés (Name)
pour le nom, (Caption) pour le texte et (Font) pour la taille du texte) pour obtenir
ceci :

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 89 / 90
Visual Basic for Application (VBA) Les formulaires et contrôles

Komi Maza-Balo T. AYOLA Actuaire IA FranceChef service administratif et financierCNSS KARA (UK) Mousson 2022-2023 90 / 90

Vous aimerez peut-être aussi