Les références circulaires se produisent lorsqu’une formule fait référence – directement ou indirectement – à la cellule dans laquelle la formule est stockée. Par exemple, si B3 contient la formule = B2 + B3, alors B3 contient une référence circulaire.

Normalement, les références circulaires représentent une erreur dans une formule. Il existe cependant des situations dans lesquelles des références circulaires sont souhaitables.

Excel vous permet d’inclure des références circulaires dans une feuille de calcul, mais il peut être un peu difficile à leur sujet.

Dans la plupart des cas, Excel est très indulgent sur les références circulaires si le contrôle Itération est activé. (Choisissez Options dans le menu Outils et affichez l’onglet Calcul.) Si vous sélectionnez la case à cocher Itération, puis entrez une référence circulaire, Excel ne proteste pas.

Au lieu de cela, il utilise les paramètres de l’onglet Calcul pour contrôler combien de fois la référence circulaire est répétée avant qu’elle ne soit considérée comme terminée.

Il semble que le paramètre de la case à cocher Itération est stocké dans le cadre d’un classeur, mais il n’est pas toujours prêté attention au moment où le classeur est chargé ultérieurement dans Excel. En fait, le paramètre est complètement ignoré si l’une des situations suivantes se produit avant d’ouvrir le classeur:

  • Vous ouvrez tout autre classeur en plus du classeur par défaut créé lors du premier démarrage d’Excel.

  • Vous modifiez la case à cocher Itération pendant que le classeur par défaut est affiché.

Excel examine le paramètre de case à cocher Itération pour le classeur que vous ouvrez en premier. Ce paramètre devient la « valeur par défaut » pour la session en cours avec Excel. Pour tout autre classeur chargé au cours de la même session, le paramètre enregistré de la case à cocher Itération est ignoré.

En outre, si vous avez défini un classeur Personal.xls sur votre système, le paramètre de la case à cocher Itération dans ce fichier est toujours utilisé par défaut. Pourquoi? Parce que Personal.xls sera toujours le premier classeur ouvert et que le premier classeur ouvert définit toujours la valeur par défaut pour le paramètre.

Si vous disposez d’un classeur enregistré qui utilise des références circulaires et que la case à cocher Itération est désactivée (par défaut ou explicitement), lorsque vous ouvrez le classeur contenant les références circulaires, Excel affiche un avertissement. Si vous ne souhaitez pas voir l’avertissement, la solution évidente consiste à vous assurer que vous ouvrez le classeur avant tout autre classeur (afin que son paramètre Itération soit utilisé) ou à définir explicitement la case à cocher Itération avant d’ouvrir le classeur.

Si vous ne voulez pas vous soucier de l’ordre dans lequel vous ouvrez les classeurs et que vous ne voulez pas toujours modifier le paramètre de la case à cocher Itération, vous pouvez créer une macro qui garantit que la case Itération est activée pour le classeur. Si vous affectez la macro à l’événement Open pour le classeur, elle s’exécutera à chaque fois que le classeur est ouvert, garantissant que vous ne verrez pas l’avertissement que vous ne souhaitez pas voir.

La macro se présente comme suit:

Private Sub Workbook_Open()

Application.Iteration = True End Sub

Si vous avez défini un classeur Personal.xls pour votre système, vous pouvez y ajouter cette macro plutôt que dans des classeurs individuels. De cette façon, vous pouvez vous assurer que la case à cocher Itération est toujours sélectionnée pour chaque session Excel.

_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 (2816) 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:

lien: / excelribbon-Iterating_Circular_References [Iterating Circular References].