Lorsque vous écrivez une macro, elle est conçue pour être exécutée chaque fois que vous choisissez de l’exécuter. Que faire si vous avez besoin de développer une macro qui s’exécutera chaque fois que quelque chose change dans votre feuille de calcul? Que faire si vous souhaitez que la macro s’exécute automatiquement? Cela est particulièrement nécessaire si vous créez une fonction personnalisée que vous souhaitez utiliser dans les cellules de la feuille de calcul.

C’est là que la méthode volatile est utile. Tout ce que vous avez à faire est d’inclure la déclaration suivante dans votre macro:

Application.Volatile

Cela informe Excel que les résultats de la macro dépendent des valeurs de la feuille de calcul et qu’il doit être exécuté chaque fois que la feuille de calcul est recalculée. Par exemple, considérez la fonction définie par l’utilisateur suivante:

Function CountCells(MyRange As Range)

Dim iCount As Integer     iCount = 0     For Each cell In MyRange         If cell.HasFormula Then             iCount = iCount + 1         End If     Next cell     CountCells = iCount End Function

Cette fonction, si elle est utilisée dans une cellule, compte le nombre de cellules contenant des formules dans une plage spécifiée. Cependant, la fonction ne s’exécutera que la première fois qu’elle est entrée dans une cellule ou chaque fois que la cellule contenant la formule est modifiée. Si vous souhaitez que la fonction recalcule chaque fois que la feuille de calcul est recalculée, vous devez ajouter la méthode Volatile au début de la fonction:

Function CountCells(MyRange As Range)

Dim iCount As Integer     Application.Volatile     iCount = 0     For Each cell In MyRange         If cell.HasFormula Then             iCount = iCount + 1         End If     Next cell     CountCells = iCount End Function

L’inclusion de la méthode Application.Volatile signifie que chaque fois que la feuille de calcul est recalculée, cette fonction (macro) est à nouveau exécutée.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (2013) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Forcing_a_Macro_to_Run_when_a_Worksheet_is_Recalculated [Forcer l’exécution d’une macro lorsqu’une feuille de travail est recalculée].