Bug d'un fichier à l'enregistrement

Bonjour,

Je rencontre le problème suivant : j'utilise une feuille excel contenant des calculs itératifs et 33 macros. Ces dernières n'ont qu'une fonction d'affichage (elles reportent deux textes dans deux cases distinctes) et 31 d'entres elles fonctionnent sans problème.

Lorsque je clique sur les deux autres boutons, certaines cases (admettons, B1 et C3) affichent "#VALEUR!" et si j'enregistre la feuille, elles affichent la valeur numérique calculée tandis que d'autres cases (admettons A2 et D4) affichent "#VALEUR!". Si je réenregistre (sans rien toucher entre temps), B1 et C3 réaffichent "#VALEUR!" et A2 et D4 réaffichent la valeur numérique du calcul. De plus, si je sélectionne une des cases marquées "#VALEUR!" et que j'appuie sur entrée (sans modifier quoi que ce soit dans la formule), la valeur numérique s'affiche dans toutes les cases, et je peux enregistrer sans que rien ne se modifie plus.

Si l'un d'entre vous a une explication ou mieux, une solution, je suis preneuse !

Bonne journée !

Sans le fichier, je doute que quelqu'un puisse te répondre ...

Malheureusement il s'agit d'un fichier confidentiel...

Hello,

Sans fichier, ça tient plus de la voyance, mais comme je suis un peu gaulois, j'ai un peu de sang de devin.

Alors j'ouvre mon poisson et il me dit que dans l'absolu tu peux avoir :


- Un problème de rafraichissement de données et aussi de formule.

> Dans les options Excel, passe de calcul manuel à Automatique, pour que le calcul se fasse en temps réelle, ou alors appuis sur calculer dans l'onglet formule ou F9.

> Dans l'onglet données, appuis sur actualiser tout.


- Dans tes codes VBA, il doit y avoir le code :

Application.ScreenUpdating = False sans Application.ScreenUpdating = True

> Si tu laisse False, cela interromps le rafraichissement, peut être qu'au niveau des MàJ des importations de données, ça plante le recalcule automatique, à chaque fois que tu applique la ligne Application.ScreenUpdating = False, il faut qu'à la fin de l'execution de ta macro il y'ait Application.ScreenUpdating = True

Et éventuellement d'autres lignes de code qui empêchent ou oublient le recalcule ou la MàJ des connexions.


Après l'aide Excel (F1) dit entre autre :

Symptôme

Excel affiche l’erreur #VALEUR! dans une ou plusieurs cellules d’une feuille de calcul.

Causes

Votre classeur utilise une connexion de données qui n’est pas disponible.

Exemple

Lorsque vous copiez les données d’exemple dans une feuille de calcul vide, les formules des cellules A4 et A5 renvoient l’erreur #VALEUR! ; cependant, les cellules A6 et A7 renvoient la valeur correcte, 30.

A

1 10

2 Bonjour

3 20

4 =A1+A2+A3

5 =SOMME(A1+A2+A3)

6 =SOMME(A1,A2,A3)

7 =SOMME(A1:A3)

Résolution

- Au lieu d’utiliser des opérateurs arithmétiques, utilisez une fonction, telle que SOMME, PRODUIT ou QUOTIENT pour exécuter une opération arithmétique sur des cellules qui peuvent contenir du texte et évitez les opérateurs arithmétiques dans la fonction. Séparez plutôt les arguments en utilisant des virgules.

Par exemple, utilisez la formule =SOMME(A2,A3,A4) plutôt que =A2+A3+A4 ou =SOMME(A2+A3+A4)

- Si votre classeur utilise une connexion de données, prenez les mesures nécessaires pour restaurer la connexion de données ou, si cela est possible, envisagez l’importation des données.


C'est tout ce que je peux dire avec aussi peu d'éléments.

bye

Merci pour cette réponse si rapide !

Alors, pour ta première solution, le calcul automatique est activé, donc ça c'est bon.

Pour la troisième, je n'ai pas de formule du genre, en revanche j'avais des cellules nommées, j'ai remplacé le nom par les coordonnées de la cellule (hauteur ==> I25) mais ça n'a rien changé...

Pour ta deuxième solution, je n'ai pas le code Application.ScreenUpdating, mais j'ai "Enable.Calculation", est-ce la même fonction?

En fait, je sens bien un bug d'Excel, comme quand Word modifie la police d'un texte tout seul alors que tu as juste fait un retour à la ligne...

Je vais continuer d'investiguer, merci encore !

Hi,

Pour ta deuxième solution, je n'ai pas le code Application.ScreenUpdating, mais j'ai "Enable.Calculation", est-ce la même fonction?

Je suppose que c'est en fait : EnableCalculation, car c'est le seul code que j'ai trouvé dans l'aide.

Donc oui c'est pareil, cette propriété a la valeur True pour que Microsoft Excel recalcule automatiquement la feuille. Elle a la valeur False si Excel ne recalcule pas la feuille, la valeur est False par défaut, si non renseigné.

"Quand la valeur de cette propriété est False, vous ne pouvez pas demander un recalcul. Quand vous changez la valeur de cette propriété, de False en True, Microsoft Excel recalcule la feuille de calcul."

Tu es en mode de calcul manuel caché, mais dans Excel, tu reste officiellement en automatique, donc tu ne met à jour qu'à la sauvegarde ou en forçant la MàJ des calculs, donc à la fin de ta macro, il faut que ton code soit à nouveau sur EnableCalculation = True.

Et n'être en mode de calcul manuel, que sur l'option Excel et non VBA si ton fichier est trop gros.

Pour Word ce n'est pas un bug mais une correction auto., tu peux la changer en fouillant dans les options.

Rechercher des sujets similaires à "bug fichier enregistrement"