Vous êtes sur la page 1sur 9

2018-2019

Utilisation des macros Excel


I/ Exercices d’application
Vous allez, dans un premier temps travailler sur deux exercices simples permettant de mieux
appréhender le fonction d’excel VBA

Exercice I : Création d’une fonction


Vous devez créer une fonction que vous appellerez determinant. Cette fonction devra calculer le
déterminant d’une fonction d’ordre 2. Pour cela elle devra respecter les éléments suivants :

- Etre définie comme une fonction dans VBA


- Avoir comme données d’entrée les coefficients de l’équation
- Avoir comme donnée de sortie la valeur du déterminant

Exercice II : création d’une macro de calcul de racine


Créez une macro qui soit lancée par un bouton et qui permettent de calculer les racines d’un
polynome du 2nd ordre :

- La macro sera définie dans VBA


- Nommez les cases auxquelles elle va faire appel dans excel (les coefficients et le
déterminant)
- Ecrire la macro afin de calculer les racines du polynome si celle-ci sont réelles
- Associer dans excel la macro à un bouton de lancement

Exercice III : Parcourir un tableau de résultat


L’objectif ici est de comprendre commet une macro peut parcourir un tableau de résultat. Pour cela

- Créer un tableau de 20 lignes et deux colonnes. La première colonne sera numérotée de 1 à


20
- Dans la seconde colonne, mettre la fonction =alea() afin d’obtenir un nombre aléatoire
- Nommer la première case de la première colonne (vous pouvez choisir le nom que vous
souhaitez)
- Créer une macro
- Cette macro doit parcourir le tableau et trouver la ligne possédant la valeur la plus grande
dans la seconde colonne
- Les sorties de la macros doivent être le numéro de la ligne (1 ère colonne) et la valeur de la
ligne (seconde colonne)
- Associer cette macro à un bouton
2018-2019

II/ Explications et correction

Comme vous pourrez le constater, la correction est disponible pour que vous puissiez comparer votre
travail et que vous puissiez lever les difficultés rencontrées. Nous allons redétailler les éléments
suivants :

1) Travailler dans un module


Tout le code VBA que vous écrirez doit l’être dans un module (ici nommé module 1):

Pour ajouter un module, faire clic droit


2018-2019

2) Nommer une case


Vous pouvez (et nous le recommandons) de nommer les cases de données ainsi que les cases
d’origines de tableau.

Vous pouvez alors utiliser une fonction en notant le nom de la case (ici a_1) plutôt que sa localisation
B5.
2018-2019

3) Function
Reprenons la correction du premier exercice.

 Une fonction est toujours commencée par function et terminée par end function
 Elle possède toujours un nom (ici determinant) ainsi qu’une liste d’argument (ici a, b, c). Ces
arguments sont les données d’entrées de la fonction.
 La fonction ne donne qu’une unique sortie. Lorsque celle-ci est utilisée dans un tableau excel,
la sortie se fera dans la case ou la fonction est utilisée

 Pour pouvoir effectuer une opération de calcul, il faut noter : nom de la fonction = formule
de calcul
2018-2019

4) Macro

Une macro est toujours composée :

 Sub puis nom avec les parenthèses ()


 Un import des données : on importe les données numériques du tableau excel (ici les valeur
de a, b,c) que l’on attribue à des variables.
 Une zone de calcul dans laquelle on peut appliquer des boucles (while, if, for…) et calculer les
valeurs de nos variables
 La sortie de nos variables : les variables calculées sont alors exportées dans le tableau excel
(ici det, x1 et x2 qui sont exportés dans les cases det, x_1, x_2)

5) Range
L’instruction range permet de :

 Importer des données dans une macro : variable = range("nom de la case")

 Exporter des données depuis une macro vers des cases excel : range("nom de la case") =
variable
2018-2019

6) Offset
Offset peut être ajouté à range pour pouvoir se déplacer dans un tableau excel :

 Range("Nom de la case").offset(i,j) = permet de sélectionner la case se trouvant à i colonnes


et j lignes de la case "nom de la case". I et j peuvent être négatives.

Vous pourrez utiliser range().offset afin de parcourir rapidement et de balayer des tableaux.

III/ Annexes
Il faut pour cela activer l’utilisation des macros dans votre fichier : il faut activer l’onglet développeur

https://support.office.com/fr-fr/article/afficher-l-onglet-d%C3%A9veloppeur-e1192344-5e56-4d45-
931b-e5fd9bea2d45

Pour accéder à l’utilitaire des créations de macro, il faut activer l’onglet développeur et cliquer sur
Visual basic.

Un petit tutoriel pour la création d’une macro :

https://www.youtube.com/watch?v=MWmW58SXqn8

Pour la création et l’écriture d’une fonction, regardez le lien présenté ici :

http://www.6ma.fr/tuto/creer+ses+fonctions+dans+excel+macros-53

L’utilisation d’une macro est la création d’une fonction qui sera par la suite utilisable par excel. Il
faudra pour cela lui renseigner les données d’entrées qu’il va utiliser.
2018-2019

Conseil : Vous pouvez nommer les cases dans excel afin de les retrouver rapidement.

Ici le while parcoure le tableau dont la case d’origine s’appelle OrigineELUfondRes. La fonction
offset(i,j) permet de se décaler de i lignes vers le bas et de j colonnes vers la droite.

Une macro doit toujours commencer par un sub et finir par end sub
2018-2019

Pour qu’une macro écrive une valeur dans une case, il faut utiliser l’instruction suivante :

Ici la macro va remplir la case Gammaetoile (celle-ci a été nommée au préalable) avec la valeur de
Gammaetoile que la macro à calculé auparavant.

Exemple de fonction basique :


2018-2019