Création de fonction volatiles, Excel VBA

Par défaut, les fonctions définies par l’utilisateur (UDF) 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ée 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 l’expliquer un peu plus.

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

Créez une fonction appelée NOUVELFONCTION qui renvoie la somme de la cellule sélectionnée et de la cellule sous cette cellule.

2. Ajoutez les lignes de code suivantes:

Function NOUVELFONCTION(cell As Range)

NOUVELFONCTION = cell.Value + cell.Offset(1, 0).Value

End Function

 

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 B1 par 6.

5. Modifiez maintenant la valeur de la cellule B2 à 18.

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 rendre la fonction volatile:

Function NOUVELFONCTION (cellule As Range) 
Application.Volatile 
NOUVELFONCTION = cell.Value + cell.Offset(1, 0).Value 
End function

 

7. Modifiez la valeur de la cellule B2 à 1.

 Résultat:

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

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x