Ci-dessous, nous examinerons un programme dans Excel VBA qui crée une fonction définie par l’utilisateur. Excel dispose d’une grande collection de fonctions. Dans la plupart des cas ces fonctions sont suffisantes pour faire le travail. Sinon, vous pouvez créer votre propre fonction appelée fonction définie par l’utilisateur ou une fonction Excel personnalisée. Vous pouvez accéder à une fonction définie par l’utilisateur comme toute autre fonction Excel.

Nous voulons créer une fonction appelée SUMEVENNUMBERS qui trouve la somme des nombres pairs d’une plage sélectionnée au hasard.

Situation:

User Defined Function in Excel VBA

fonctions définies par l’utilisateur doivent être placés dans un module.

  1. Ouvrez l’éditeur Visual Basic et cliquez sur Insérer, Module.

  2. Ajoutez la ligne de code suivant:

Function SUMEVENNUMBERS(rng As Range)

Le nom de notre fonction est SUMEVENNUMBERS. La partie entre les parenthèses signifie que nous donnons Excel VBA une gamme en entrée. Nous nommons notre gamme RNG, mais vous pouvez utiliser un nom.

  1. Ensuite, nous déclarons un objet Range et appeler cellule.

Dim cell As Range
  1. Nous voulons vérifier chaque cellule dans une plage sélectionnée au hasard (cette gamme peut être de toute taille). Dans Excel VBA, vous pouvez utiliser la boucle For Each suivante pour cela. Ajoutez les lignes de code suivantes:

For Each cell In rng

Next cell

Note: cellule est choisie au hasard ici, vous pouvez utiliser un nom.

  1. Ensuite, nous vérifions pour chaque valeur dans cette plage si elle est encore ou non. Nous utilisons l’opérateur Mod pour cela. L’opérateur Mod donne le reste d’une division. Donc, 7 mod 2 donnerait 1. 7 est divisé par 2 (3 fois) pour donner un reste de 1. Cela dit, il est facile de vérifier si un nombre est encore ou non. Seulement si le reste d’un nombre divisé par 2 est 0, le nombre est encore. 8 mod 2 donne 0, 8 est divisé par 2 exactement 4 fois, et donc 8 est encore. Ajouter ce qui suit Si la déclaration suivante pour chaque boucle.

If cell.Value Mod 2 = 0 Then

End If
  1. Seulement si cette affirmation est vraie, on ajoute la valeur à SUMEVENNUMBERS.

Ajoutez la ligne de code suivant dans l’instruction If.

SUMEVENNUMBERS = SUMEVENNUMBERS + cell.Value
  1. Ne pas oublier de mettre fin à la fonction (en dehors de la boucle).

End Function
  1. Maintenant, vous pouvez utiliser cette fonction, comme toute autre fonction Excel, pour trouver la somme des nombres pairs d’une plage sélectionnée au hasard.

Résultat:

User Defined Function Result

Bien joué! C’est ainsi que des fonctions définies faciles utilisateur dans Excel VBA sont.

Remarque: cette fonction est uniquement disponible dans ce classeur.