Calcul itératif depuis une XLA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gilles_bsa

XLDnaute Nouveau
Bonjour tout le monde,
J'ai une feuille de calcul sous Excel 2007 dans laquelle il y a une cellule qui est calculée par une Public Function qui est située dans une macro complémentaire chargée.
La valeur de cette cellule est en référence circulaire car elle est fonction d'une somme totale qui inclus la cellule.
A la première ouverture du fichier après le chargement d'Excel, la cellule donne #VALEUR! et la somme totale donne #NOM?.
Si je ferme le fichier sans le sauver, puis l'ouvre à nouveau les cellules sont correctes (nombres dans toutes les cellules).
J'aurais besoin de trouver une solution pour que les utilisateurs n'est pas à ouvrir 2 fois le fichier lorsqu'ils démarrent Excel.
Sous Excel 2002, la solution était la suivante : il fallait sauver la XLA après la 2ème ouverture du fichier (lorsque les cellules sont correctes) ce qui permettait aux utilisateurs d'avoir les cellules correctes dès la première ouverture le fichier.
 
Re : Calcul itératif depuis une XLA

bonsoir

je ne trouve pas très catholique de travailler avec des références dites circulaires !?

Mais soit, pour solutionner le problème il faut (sous 2003) (voir équivalent 2007)
Barre des Menus sélectionner Outils puis en bas Options...
dans la fenêtre sélectionner l'onglet Calcul
dans cet onglet cocher Itération et voir le nombre de fois souhaités

Roland

ReEDIT:

dans 2007 il faut cliquer en haut à gauche sur l'icone Bouton Office
puis en bas Options Excel
puis cliquer sur Formules
puis dans cette fenêtre voir Mode Calcul et cocher Activer le calcul Itératif

Roland
 
Dernière édition:
Re : Calcul itératif depuis une XLA

Roland,
Les références circulaires sont faites pour de tel cas (par exemple, si l'on veut que notre marge soit de x% sur le prix de vente net).
Le calcul itératif est toujours actif : à l'ouverture d'Excel sans fichier ouvert (défini par défaut dans mon modèle), à la première ouverture du fichier concerné (où les erreurs apparaissent) et aux ouvertures suivantes (où il n'y a plus d'erreurs).
J'ai résolu mon problème d'une manière pas très élégante : j'ai ajouté le code suivant à PERSONAL.XLSB :

Sub Aut😵pen()
Application.ScreenUpdating = False
Workbooks.Add
Application.DisplayAlerts = False
ActiveCell.FormulaR1C1 = "=calc_com(R[1]C,R[2]C,R[3]C)" 'appel de la fonction qui génère l'erreur
Selection.ClearContents
ActiveWindow.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Le premier appel de la fonction qui génère l'erreur est donc exécuté dans une nouvelle feuille à l'ouverture d'Excel sans que l'utilisateur ne le voit et ainsi lors que le fichier demandé s'ouvre il est sans erreurs.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
506
  • Question Question
Réponses
15
Affichages
1 K
Retour