Comment renvoyer une valeur à partir d’une fonction VBA (avec exemples)



Pour renvoyer une valeur d’une fonction dans VBA, vous devez attribuer la valeur au nom de la fonction.

Par exemple, nous pouvons créer la fonction suivante pour diviser deux valeurs puis renvoyer le résultat de la division :

Function DivideValues(x, y)
    DivideValues = x / y
End Function

Le nom de cette fonction est DivideValues , donc pour renvoyer une valeur de cette fonction, nous devons attribuer le résultat de x / y à une variable du même nom de DivideValues .

Si votre fonction implique une logique If Else , vous pouvez attribuer la valeur au nom de la fonction plusieurs fois.

Par exemple, vous pouvez créer la fonction suivante qui renvoie « Impossible de diviser par zéro » si vous tentez de diviser par zéro ou bien renvoyer simplement le résultat de la division :

Function DivideValues(x, y)
    If y = 0 Then
      DivideValues = "Cannot divide by zero"
    Else
      DivideValues = x / y
    End If
End Function

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : Comment renvoyer une valeur à partir d’une fonction VBA

Supposons que nous souhaitions créer une fonction dans VBA pour diviser la valeur de la cellule A2 par la valeur de la cellule B2 :

Nous pouvons créer la fonction suivante pour ce faire :

Function DivideValues(x, y)
    DivideValues = x / y
End Function

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

La fonction renvoie une valeur de 5 , qui est le résultat de 50 divisé par 10.

Nous pourrions également créer une fonction qui utilise la logique If Else pour vérifier d’abord si la valeur par laquelle nous divisons n’est pas égale à zéro :

Function DivideValues(x, y)
    If y = 0 Then
      DivideValues = "Cannot divide by zero"
    Else
      DivideValues = x / y
    End If
End Function

Si nous modifions la valeur dans la cellule B2 et utilisons ensuite cette fonction pour effectuer une division, nous recevrons le résultat suivant :

Puisque nous avons tenté de diviser par zéro, « Impossible de diviser par zéro » est renvoyé par la fonction.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

Comment commenter un bloc de code dans VBA
Comment vérifier si le fichier existe à l’aide de VBA
Comment créer des dossiers à l’aide de VBA

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *