Créer ses fonctions dans Excel

advertisement
Créer ses fonctions dans Excel (Macros)
I. Introduction à la macro excel
Bien que le tableur Excel propose un nombre important de fonctions intégrées, il se peut
qu’aucune ne réponde à un besoin spécifique. Savoir en créer ses propres fonctions, pour
les intégrer à Excel, peut alors s’avérer très précieux.
Ce tutorial explique comment créer, enregistrer et intégrer une fonction personnelle dans
Excel.
II. Explications
1 – Exemple de contexte
Pour l’exemple nous imaginons que vous travaillons dans Excel un fichier de type base de
données dont 3 des colonnes contiennent des informations desquelles nous devons
déduire une situation :
La ligne1 contient les nom de champs nommés « Critère 1 » « Critère 2 » « Critère 3 »
pour faciliter les explications. Les données à afficher dans la colonne « Situation »
dépendent des valeurs des colonnes critères, par exemple :
Si Critère 1 = 1 et Critère 2 = 1 et Critère 3 = 1 alors Situation = Cas 1
On pourrait tenter de gérer avec les fonctions SI et ET mais ça devient vite un peu lourd.
Pour estimer le cas 1, la fonction serait :
Si l’on pose comme principe que chaque critère ne peut avoir que les valeurs 1 à 5, nous
avons 125 (5 * 5 * 5) cas à prévoir . Ceci est impossible à réaliser avec Si (7
imbrications possible au maximum) et de toute façon la formule serait illisible.
Reste la solution de créer sa propre fonction qui, à partir des 3 critères qui lui seront
passés en arguments, déterminera le cas à retenir.
2 – Créer une fonction (ou Macro)
Pour créer une fonction nous devons ouvrir l’éditeur Visual Basic : utiliser la combinaison
de touche Alt + F11 ou le menu Outils/Macros/Visual Basic Editor :
Dans l’explorateur de projet nous apercevons notre classeur (MonClasseurExemple.xls) et
les 3 feuilles qui le composent. Nous ajoutons un module : menu Insertion/Module. Un
module vide apparaît dans le projet du classeur :
Dans le module nous écrivons quelques lignes de code :
Nous appelons notre fonction Situation. Elle reçoit 3 entiers (iC1, iC2 et iC3) en
arguments (nos 3 critères de la base de données) et renvoie une chaîne de caractères.
Function Situation (iC1, iC2, iC3 As Integer) As String
Nous déclarons ensuite les variables dont nous avons besoin ; ici 4 entiers (i, j, k pour
les boucles et iCas qui nous donnera la situation rencontrée en s’incrémentant dans la
boucle).
On part du principe que :
Si Critère 1 = 1 ET Critère 2 = 1 ET Critère 3 = 1 ALORS Situation = cas 1
Si Critère 1 = 1 ET Critère 2 = 1 ET Critère 3 = 2 ALORS Situation = cas 2
…..
et ainsi de suite.
Cette condition est testée dans :
If (iC1 = i And iC2 = j And iC3 = k) Then
Situation = "Cas " & iCas
End If
Je ne m’étends pas plus sur le code, l’exemple étant simple et le but du tutorial étant
d’expliquer le principe de création et d’utilisation d’une fonction personnelle.
3 – Utiliser la fonction (ou Macro)
Notre fonction est maintenant créée et peut s’utiliser comme n’importe quelle fonction
d’Excel.
Dans la cellule D2 vous tapez : =Situation(A2;B2;C2) que vous collez ensuite dans les
autres cellules de la colonne D :
Vous pouvez également accéder à la fonction par l’assistant (le bouton fx) :
Dans la boîte de dialogue « insérer une fonction » sélectionnez « Personnalisées » dans
catégories , et cherchez « situation » dans « Sélectionnez une fonction » :
Il suffit ensuite de remplir les champs de la fonction comme vous le faites pour une
fonction intégrée :
Ces méthodes valent si vous devez utiliser votre fonction dans ce seul classeur. Si vous
entendez l’utiliser dans d’autres il faut créer un fichier .xla puis intégrer votre fonction
dans votre nouveau classeur.
Pour créer un fichier .xla : dans Excel menu Fichier/Enregistrer sous , choisir « Macro
complémentaire Microsoft Excel (*.xla) » dans type de fichier et nommer votre fichier «
Situation.xla » :
Le répertoire « Macros complémentaires » est automatiquement sélectionné. Cliquez sur
« Enregistrer » .
Fermez votre classeur, ouvrez-en un vide et remplissez quelques cellules de la même
manière que pour le premier classeur.
Pour intégrer la fonction « Situation » : menu Outils/Macros complémentaires. Dans la
liste déroulante cherchez et cochez « Situation » :
Cliquez sur OK. Vous pouvez désormais utiliser votre fonction « Situation » comme
expliqué plus haut.
III. Conclusion du tutorial
Voilà, après avoir lu ce tutoriel, je pense que vous vous imaginez mieux le temps
précieux que l'on peut gagner avec Excel, enfin surtout pour ceux qui utilisent le tableur
Excel et qui ne connaissaient pas trop les fonctions (alias Macros). A votre tour de
jouer...
Download