Fonctions volatiles Excel VBA - Macros Excel faciles

Table des matières

Par défaut, les UDF (User Defined Functions) dans Excel VBA ne sont pas volatiles. Ils ne sont recalculés que lorsque l'un des arguments de la fonction change. UNE fonction volatile sera recalculé chaque fois que le calcul se produit dans n'importe quelle cellule de la feuille de calcul. Jetons un coup d'œil à un exemple simple pour expliquer cela un peu plus.

1. Ouvrez Visual Basic Editor et cliquez sur Insérer, Module.

Créez une fonction appelée MYFUNCTION qui renvoie la somme de la cellule sélectionnée et de la cellule en dessous de cette cellule.

2. Ajoutez les lignes de code suivantes :

Fonction MYFUNCTION(cell As Range)
MAFONCTION = cellule.Valeur + cellule.Décalage(1, 0).Valeur
Fonction de fin

3. Vous pouvez maintenant utiliser cette fonction, comme n'importe quelle autre fonction Excel.

4. Il s'agit d'une fonction non volatile. Les fonctions non volatiles ne sont recalculées que lorsque l'un des arguments de la fonction change. Remplacez la valeur de la cellule B2 par 8.

5. Modifiez maintenant la valeur de la cellule B3 en 11.

Explication : la fonction non volatile n'est pas recalculée lorsqu'une autre cellule de la feuille change.

6. Mettez à jour la fonction comme suit pour la rendre volatile :

Fonction MYFUNCTION(cell As Range)
Application.Volatile
MAFONCTION = cellule.Valeur + cellule.Décalage(1, 0).Valeur
Fonction de fin

7. Remplacez la valeur de la cellule B3 par 12.

Résultat:

Remarque : vous devez saisir à nouveau la fonction pour la rendre volatile (ou la rafraîchir en plaçant votre curseur dans la barre de formule et en appuyant sur Entrée).

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave