Détection des références circulaires

Introduction

Les classeurs peuvent comporter des références circulaires et parfois il est nécessaire de détecter si des références circulaires sont présentes ou non.

Concept derrière la détection de la référence circulaire

Les références circulaires ne peuvent être détectées que lorsque la formule est calculée, car les références d’une formule dépendent généralement du résultat calculé d’autres parties ou d’autres formules. Nous fournissons donc de nouvelles API pour cette exigence (pour rassembler les cellules avec des références circulaires) dans le processus de calcul des formules :

CalculationCell : Représente le calcul des données pertinentes d’une cellule en cours de calcul

AbstractCalculationMonitor.OnCircular(IEnumerator circularCellsData) : sera invoquée par le moteur de calcul de formule lors de la détection de références circulaires, l’élément de l’énumérateur est des objets CalculationCell qui représentent toutes les cellules dans un cercle. La valeur retournée indique si le moteur de formule doit calculer ces cellules en cercle après cet appel.

L’utilisateur peut rassembler ces références circulaires dans la mise en œuvre de la méthode AbstractCalculationMonitor.OnCircular().

Le fichier d’exemple source peut être téléchargé à partir du lien suivant :

Circular Formulas.xls

La définition de la classe CircularMonitor qui est dérivée de la classe AbstractCalculationMonitor est la suivante :