Excel VBA Fonctions volatiles
Par défaut, UDF de ( lien: / vba-exemples-utilisateur-fonction définie [Fonctions définies par l’utilisateur]
) dans Excel VBA ne sont pas volatiles. Ils ne sont recalculés lorsque l’un des arguments de la fonction change. Une fonction volatile est recalculée chaque fois que le calcul se produit dans les cellules de la feuille de calcul. Jetons un coup d’oeil à un exemple facile à expliquer un peu plus.
-
Ouvrez l’éditeur Visual Basic et cliquez sur Insérer, Module.
Créer une fonction appelée MyFunction qui retourne la somme de la cellule sélectionnée et la cellule en dessous de cette cellule.
-
Ajoutez les lignes de code suivantes:
Function MYFUNCTION(cell As Range) MYFUNCTION = cell.Value + cell.Offset(1, 0).Value End Function
-
Vous pouvez maintenant utiliser cette fonction, comme toute autre fonction Excel.
-
Cette fonction est non volatile. Les fonctions non volatiles ne sont recalculés lorsque l’un changement des arguments de la fonction. Modifiez la valeur de la cellule B2 à 8.
-
Maintenant, changer la valeur de la cellule B3 à 11.
Explication: la fonction non-volatile est pas recalculée lorsque toute autre cellule de la feuille change.
-
Mise à jour de la fonction suivante pour rendre la fonction volatile:
Function MYFUNCTION(cell As Range) Application.Volatile MYFUNCTION = cell.Value + cell.Offset(1, 0).Value End Function
-
Modifiez la valeur de la cellule B3 à 12.
Résultat:
Remarque: vous devez saisir à nouveau la fonction pour le rendre volatile (ou le rafraîchir en plaçant votre curseur dans la barre de formule et appuyez sur Entrée).