Voici mon problème avec l'exécution d'une formule Excel.Formule auto-référencée conditionnelle (exécuter uniquement si valeur de la cellule == "")
Ce sont les exigences:
- J'ai plusieurs lignes dans une feuille Excel .
- A la fin de chaque ligne se trouve un champ appelé "Mois".
- Si quelqu'un entre de nouvelles valeurs dans cette ligne , le mois en cours doit être inséré.
- Si les valeurs sont modifiées, le mois ne doit pas être modifié.
Pour inclure le mois en cours, j'utilise une formule comme ceci (A10 est juste un champ aléatoire qui sera rempli):
=IF(A10<>0; MONTH(NOW()); "")
Maintenant, je besoin d'une condition pour vérifier si le champ contient une mois déjà, et si c'est le cas, ne faites rien. J'ai essayé les éléments suivants (A15 doit contenir le mois):
=IF(A15 <> ""; IF(A10<>0; MONTH(NOW()); "") ;)
Pour décider si le champ doit être modifié par l'formular, je dois vérifier sa valeur actuelle. Le problème est que cela aboutira à une référence circulaire au champ lui-même.
Quelqu'un at-il une solution de travail pour ce genre de problèmes? J'essaie de ne pas utiliser de code VBA.
Il semble que je doive vivre avec VBA :-) Merci pour votre réponse! – echox
Malheureusement, oui. Pour clarifier, ce n'est pas vraiment la nature autoréférentielle qui est en cause (nous pouvons contourner cela en utilisant des champs cachés, etc.) c'est plus que vous voulez que les formules évaluent seulement sous certaines conditions, alors qu'elles sont toutes réévaluées chaque fois que un champ qu'ils référencent est mis à jour, la feuille de calcul est chargée, et une centaine d'autres situations - vous n'avez donc aucun moyen de comparer avec les «anciennes» valeurs. – Basic