Aller au contenu
Accueil » Créer des fonctions en VBA

Créer des fonctions en VBA

    créer des fonctions en VBA

    Les fonctions sont l’un des éléments clés de la programmation. Par définition, une fonction est un bloc de code réutilisable qui accomplit une tâche spécifique. Les fonctions sont largement utilisées dans la programmation pour éviter d’avoir à répéter plusieurs fois le même code. Par exemple, si vous devez calculer la somme de deux nombres plusieurs fois dans votre programme, au lieu d’écrire à chaque fois la ligne, vous n’aurez qu’à appeler la fonction avec les arguments correspondants. De cette manière, cela rend votre code plus lisible, plus facile à comprendre, à maintenir mais également plus modulaire.

    Dans cet article, nous allons décortiquer les fonctions en programmation, leur importance et comment les utiliser.

    Qu’est-ce qu’une fonction en programmation ?

    En programmation, une fonction est un bloc de code qui accomplit une tâche spécifique. Les fonctions peuvent être appelées à partir de n’importe où dans le code. De ce fait, cela permet de les réutiliser quand on le souhaite sans avoir à les réécrire à chaque fois.

    Les fonctions prennent souvent des paramètres qui sont des variables ou des valeurs que la fonction utilise pour effectuer sa tâche. Pour plus d’informations concernant les variables, vous pouvez lire mon article sur le sujet ici. Les fonctions peuvent également renvoyer une valeur qui sera utilisée dans le reste du programme. Nous verrons dans la suite de cet article que cela a une influence en VBA.

    Pourquoi utiliser des fonctions en programmation ?

    Les fonctions sont importantes en programmation pour plusieurs raisons. Tout d’abord, elles permettent de réduire la duplication de code et donc de vous faire gagner du temps. De plus, une fois qu’une fonction est codée pour un projet, vous pourrez la réutiliser par un simple copier/coller pour un autre projet. en encapsulant une partie du code dans une fonction, on peut appeler cette fonction à partir de différents endroits du programme sans avoir à le réécrire.

    De plus, les fonctions rendent le code modulaire et plus facile à comprendre. En divisant le code en fonctions, on peut se concentrer sur une tâche spécifique à la fois et rendre le code plus facile à suivre. Cet exercice est bon à faire pour tout projet que vous aurez. Sur une feuille de papier, vous pouvez en quelques minutes dessiner le processus de votre programme et ainsi identifier les étapes principales. Ces étapes principales vous permettront de diviser votre en code en fonction, en modules ce qui le rendra plus lisible.

    Enfin, les fonctions sont utiles pour la maintenance du code. Si une partie du code doit être modifiée, il vous suffira de modifier la fonction en question plutôt que de rechercher toutes les occurrences de ce morceau de code dans le programme. Sachant que le nombre de lignes d’un programme peut vite exploser en plusieurs centaines, bon courage pour ne pas oublier un bloc si vous n’avez pas fait de fonctions.

    Les types de fonction

    Il existe plusieurs types de fonctions en programmation, notamment les fonctions intégrées au langage et les fonctions définies par l’utilsateur.

    Les fonctions intégrées sont celles qui sont fournies par le langage de programmation. Elles sont déjà implémentées et peuvent être utilisées directement dans le code sans avoir à les définir. Par exemple, en VBA, les fonctions suivantes sont déjà intégrées :

    • Toutes les fonctions intégrées dans Excel peuvent être utilisées en VBA
    • La plupart des fonctions mathématiques classiques : sinus, cosinus, valeur absolue, partie entière, …
    • Fonctions s’appliquant sur les chaines de caractères : UCASE et LCASE pour mettre en majuscule ou minuscule respectivement, SPLIT pour diviser, LEN pour connaitre sa longueur et beaucoup d’autres encore
    • vous trouverez la liste des fonctions intégrées à VBA dans l’aide Microsoft ici.

    Ensuite, il y a les fonctions définies par l’utilisateur. C’est le programmeur, donc vous, qui définissez ce que va faire la fonction. Les sections suivantes présentent comment créer une fonction.

    Comment créer une fonction en programmation ?

    En programmation, la création d’une fonction se fait en suivant les étapes suivantes :

    • Définir la fonction en utilisant le mot-clé « Function » suivi du nom de la fonction et des paramètres nécessaires entre parenthèses. Par exemple :
    Function ma_fonction(parametre1, parametre2)
      ' Corps de votre fonction
    End Function
    • Ecrire le corps de la fonction. Le code dans le corps de la fonction sera exécuté à chaque fois que la fonction est appelée.
    • Utiliser la commande qui permet de renvoyer le résultat de la fonction : nom_de_la_fonction =
    Function fonction_addition(a, b)
      resultat = a + b
      fonction_addition = resultat
    End Function

    Comment appeler une fonction en programmation ?

    Une fois que votre fonction a été définie, vous pourrez l’appeler dans le code principal ou dans d’autres fonctions. Pour réaliser l’appel de la fonction, rien de plus simple, il suffit d’utiliser son nom avec entre parenthèses les variables qui serviront d’argument pour la fonction. Par exemple pour, pour la fonction qui additionne deux nombres juste au-dessus, voici comment l’appeler :

    sub code_principal()
      a = 2
      b = 3
      resultat = fonction_addition(a, b)
      msgbox resultat
    end sub
    Résultat de la fonction addition
    Résultat de la fonction addition

    Cet exemple présente l’utilisation de la fonction addition créée précédemment avec les paramètres a = 2 et b = 3. Le résultat de l’opération donne donc bien 5, ce qu’on peut voir sur l’image précédente.

    Fonction vs Sub en VBA

    En VBA, on trouve les procédures Fonctions et les procédures Sub. Les deux peuvent avoir des paramètres en entrée. Ceux-ci seront mis entre parenthèses lors de l’appel de la procédure. La différence entre les deux réside dans le fait que la fonction en VBA peut renvoyer une valeur avec la procédure Sub ne le fait pas. Suivant le cas, vous aurez besoin que votre fonction vous renvoie une valeur ou une variable. Vous utiliserez alors la procédure « Function ». Si par contre, la procédure n’effectue qu’une tâche sans renvoyer de valeur, la procédure « Sub » sera à utiliser.

    Sub procedure1(variable1)
      Msgbox variable1 'Cette procédure ne fait que afficher la variable1, aucune valeur n'est renvoyée
    End Sub
    
    Function procedure2(a, b)
      procedure2 = a + b 'Ici la procédure renvoie la somme de a et de b, c'est donc une fonction en VBA
    End Function

    Déclarer le type de la fonction et des paramètres

    Je vous ai présenté dans cet article les différentes variables en programmation. Le but est d’utiliser le type de variable adéquat pour optimiser les performances du programme. Le typage des variables permet aussi de contrôler son outil afin de définir les types des paramètres dans les fonctions. Si le type ne correspond pas, une erreur surviendra dans le code. Cela permet de débuguer votre programme et de déceler un problème.

    Function procedure2(a as Integer, b as Integer) as Integer
      procedure2 = a + b 'Ici la procédure renvoie la somme de a et de b, c'est donc une fonction en VBA
    End Function

    Les types de variable sont maintenant déclarés dans la fonction « procedure2 ». Le type de la fonction est également déclaré. Si lors de l’appel de la fonction, le programme envoie dans le premier paramètre une valeur réel (3.14 par exemple), VBA arrêtera la procédure et affichera une erreur de type. Idem, si vous renvoyez une valeur réelle dans « procedure2 », une erreur apparaitra.

    Sub test_procedure()
        Dim valeur1 As Integer
        Dim valeur2 As Single
        
        valeur1 = 1
        valeur2 = 1.1
        
        addition = procedure2(valeur1, valeur2)
        MsgBox addition
        
    End Sub
    
    Function procedure2(a As Integer, b As Integer) As Integer
      procedure2 = a + b 'Ici la procédure renvoie la somme de a et de b, c'est donc une fonction en VBA
    End Function
    fonction erreur de type pour une variable

    Il faut donc déclarer et envoyer le bon type de variable pour que l’addition se passe correctement.

    Sub test_procedure()
        Dim valeur1 As Integer
        Dim valeur2 As Integer
        
        valeur1 = 1
        valeur2 = 4
        
        addition = procedure2(valeur1, valeur2)
        MsgBox addition
        
    End Sub
    
    Function procedure2(a As Integer, b As Integer) As Integer
      procedure2 = a + b 'Ici la procédure renvoie la somme de a et de b, c'est donc une fonction en VBA
    End Function
    résultat ok quand le bon type de variable est utilisé

    Pour conclure sur la création des fonctions en VBA

    Les fonctions sont des éléments essentiel de la programmation. Elles permettent de réduire la duplication de code, de rendre le code plus modulaire et surtout plus facile à comprendre. Egalement, la fonction permettent de simplifier la maintenance du code lors de mises à jour ou améliorations.

    Il existe différents types de fonctions dont les fonctions intégrées et les fonctions utilisateurs. Il est intéressant de bien connaitre les fonctions intégrées pour éviter de les coder soi-même. Si vous souhaitez faire quelque chose de plus complexe il faudra alors développer votre propre fonction.

    Vous en savez maintenant plus sur les fonctions. Vous avez les bases pour commencer à créer vos premières fonctions. Merci de m’avoir lu et n’hésitez pas à laisser un commentaire.

    Si vous avez aimé l'article, vous êtes libres de le partager ! :)

    Laisser un commentaire