Médiaforma

VBA Excel – Fonctions

Partagez cet article sur vos réseaux

Les fonctions sont définies par le mot-clé Function :

Function Nom(Param1 as Type1, Param2 as Type2, … ParamN as TypeN)

  ' Une ou plusieurs instructions

  Nom = Valeur

End Function

Ici :

  • Nom est le nom de la fonction ;
  • Param1 à ParamN sont les paramètres passés à la fonction ;
  • Type1 à TypeN sont les types des paramètres Param1 à ParamN;
  • Valeur est la valeur qui doit être retournée par la fonction. S’il s’agit d’une valeur chaîne, pensez à l’entourer par des guillemets.

Pour l’instant, nous allons nous intéresser au type Integer. Ce type caractérise les nombres entiers compris entre -32 768 et 32 767. Dans une section à venir, vous apprendrez quels sont les types utilisables en VBA.

Pour prendre un exemple très simple, nous allons définir la fonction Surface() qui calcule la surface d’un rectangle à partir de ses deux arguments : la longueur et la hauteur du rectangle.

Function Surface(longueur As Integer, hauteur As Integer)

  Surface = longueur * hauteur

End Function

Nous allons supposer que la longueur et la hauteur du rectangle se trouvent dans les cellules A2 et B2 :

Pour afficher la surface du rectangle dans la cellule C2, nous allons définir la procédure CalculSurface() :

Sub CalculSurface()

  Range("C2").Value = Surface(Range("A2").Value, Range("B2").Value)

End Sub

Ce code est très simple. La valeur des cellules A2 et B2 est lue dans la propriété Value des objets Range(« A2 ») et Range(« B2 »). Ces deux valeurs sont passées en argument de la fonction Surface(). Le résultat retourné par la fonction Surface() est copié dans la cellule C2 à l’aide de la propriété Value de l’objet Range(« C2 »).

Voici le résultat :

 
Commentaires