Fonction définie par l'utilisateur Excel VBA (UDF)
Microsoft nous propose de nombreuses fonctions intégrées pour accélérer le travail dans Excel. Cependant, en utilisant le codage VBA, nous pouvons créer nos propres fonctions et ces fonctions sont techniquement appelées «fonctions définies par l'utilisateur» (UDF). Ils sont également appelés «fonctions personnalisées» dans Excel VBA.
Toute formule accessible à partir de la feuille de calcul avec un morceau de code est appelée UDF. En termes simples, toute formule qui n'est pas intégrée mais disponible dans Excel est appelée Fonctions définies par l'utilisateur.

Comment créer des fonctions définies par l'utilisateur?
Même si UDF fait partie de notre module, ils ne font pas partie de notre sous-programme régulier dans VBA. C'est ce qu'on appelle une procédure fonctionnelle dans VBA. Comme comment nous commençons le codage de macro avec le mot SUB de la même manière, nous devons commencer cela en utilisant le mot «Fonction». La sous-procédure a début et fin, de la même manière Function Procedure à Start et End.
Exemple # 1 - Créer une fonction de somme UDF simple
Nous allons créer notre propre fonction SUM dans Excel en additionnant deux nombres.
- Pour démarrer le codage, démarrez le mot «Fonction» dans l'un des modules.

- Comme nous nommons la macro de la même manière, nous devons également donner un nom à notre fonction. Ce nom est utilisé comme nom de formule.

Contrairement au sous-programme, nous ne pouvons pas simplement appuyer sur Entrée pour créer une procédure, mais nous devons mentionner des arguments ici.
Par exemple, regardez la syntaxe ci-dessous de la fonction de feuille de calcul SUM.
Le numéro 1, le numéro 2 sont des arguments de la fonction SUM.
- De même, nous devons mentionner nos arguments.

Ici, j'ai déclaré les arguments comme «x comme entier» et «y comme entier». Puisque nous ajoutons une valeur numérique, nous devons affecter le type de données en tant que type de données numérique uniquement.
Après avoir déclaré les arguments, j'ai également attribué le type de retour de l'Integer car le résultat donné par la fonction «OurSum» est également une valeur numérique.
- Maintenant, à l'intérieur de la fonction, nous devons mentionner la formule que nous allons utiliser. Ici, nous devons utiliser la fonction pour commencer.

Nous avons mentionné que le nom de la formule « OurSum » devrait ajouter x et y.
- Ok, enregistrez le code et accédez à la feuille de calcul.

- J'ai entré quelques chiffres ici. Ouvrez le signe égal et commencez à taper OurSum. Vous pouvez voir le nom de la formule apparaître ici.

- Comme comment nous sélectionnons les cellules, sélectionnez deux cellules séparément.

- Après avoir sélectionné deux cellules, appuyez sur la touche Entrée pour obtenir des résultats.

Cela fonctionne donc exactement de la même manière que notre fonction SOMME régulière.
- Ok, maintenant je vais changer les chiffres.

- Maintenant encore, je vais appliquer la fonction que nous avons créée.

Oh!!! Nous avons obtenu des valeurs d'erreur sauf pour la première cellule.
Vous devez vous demander pourquoi nous avons eu une erreur.
Si vous observez les cellules A2 et B2, nous avons les valeurs 48170 et 21732. Puisque nous avons attribué le type de données Integer, il ne peut contenir aucun nombre supérieur à 32767. C'est la raison pour laquelle nous avons obtenu l'erreur Excel comme #NOMBRE !.
Maintenant, je vais ajouter des nombres inférieurs à 32767.

Dans l'image ci-dessus, tous les nombres sont des nombres entiers, c'est-à-dire inférieurs à 32767.
Dans la première cellule, nous avons obtenu les résultats. Mais dans la deuxième cellule, c'est-à-dire la cellule C2, nous avons obtenu la valeur d'erreur #VALUE !.
Même si les deux nombres sont inférieurs à 32767, nous avons toujours l'erreur.
C'est parce que nous avons déclaré le résultat final également comme Integer.

Ainsi, lorsque nous ajoutons 16000 et 17229, nous obtiendrons une valeur telle que 33229, qui est supérieure à la limite de type de données entier de 32767. Le résultat final est donc une valeur d'erreur.
Exemple # 2 - Créer une fonction pour tester les valeurs logiques
Nous allons créer une autre fonction pour tester les valeurs logiques. Nous avons besoin d'une fonction qui renvoie «Bon» si le nombre est> = 60, et nous avons besoin du résultat comme «Mauvais» si le nombre est <= 50.
Étape 1: Démarrez la procédure fonctionnelle et donnez un nom à la procédure.

Étape 2: Donnez l'argument en tant que TestScore en tant qu'entier.

Étape 3: Notre résultat final doit être «Bon» ou «Mauvais», donc le résultat doit être en String.
Étape 4: Tout d'abord, nous devons tester si le score est> = 60 ou non. Utilisez la condition IF pour tester.

Étape 5: Si le score du test est> = 60, nous avons besoin de la fonction pour renvoyer le résultat comme "Bon". Donc TestResult = "Bien."

Étape 6: Si le score du test est inférieur à 60, le résultat de la fonction doit être «Mauvais».

Ok, nous avons terminé.
- Enregistrez le code et accédez à la feuille de calcul.

J'ai entré quelques chiffres ici comme résultat de test.
- Appliquez la fonction que nous avons créée pour obtenir des résultats.

- Sélectionnez la cellule et appuyez sur Entrée.

C'est ce qu'est UDF.