Calcul Manuel souhaité en permanence : Comment ?

Bonjour,

J'aimerais que mon EXCEL soit toujours en mode CALCULS MANUEL, pour éviter des 3-4 minutes de recalculs quand le moment n'est pas opportun, et ainsi CHOISIR MOI MEME le MOMENT ou EXCEL PEUT prendre 3-4 minutes pour refaire tous ses calculs. Ce problème apparait aussi à l'ouverture de fichiers. Il recalcule des formules qui avaient pourtant été recalculées à la fermeture / enregistrement.

Bref. Mon équipe et moi perdons beaucoup de minutes dans une journée à attendre un calcul excel à des moments non souhaités.

Problème : On a beau spécifier CALCUL MANUEL, les fichiers semblent toujours revenir en calcul automatique.

Quelqu'un a trouvé une solution à ce problème ?

Quelqu'un sait comment EXCEL 2010 établit son mode de calcul ?

merci de votre attention

Stéphane de MTL

Bonsoir,

normalement l'option du type de calcul est lié au fichier et non pas à l'application elle-même.

Donc si malgré la position en "manuel" à l'ouverture cela revient en automatique, c'est qu'il y a une ligne de code VBA qui remet l'option en automatique... Mais sans fichier je ne peux l'affirmer

@ bientôt

LouReeD

Bonsoir,

LouReed a tout à fait raison, si le fichier est en mode calcul Manuel, il le reste... !

Mais j'aurais tendance à considérer que le problème est un fichier qui met 3-4 minutes à se recalculer !

Un recalcul durant plusieurs secondes est déjà très long ! Cela peut arriver avec des fichiers un peu lourds et bourrés de formules... et cela justifie à mon sens que l'on reconsidère la conception du fichier, car traîner un fichier qui rame ne permet pas de travailler efficacement.

Mais plusieurs minutes ! Cela me paraît une anomalie dont il faut chercher la raison.

Cordialement.

Bonsoir Maréchal !

Lu ici et là sur le net :

"Il est convenue qu'une attente de 7 secondes est considérée comme "supportable" pour les utilisateur d'application Excel, lors de l'exécution d'un code"

Alors je vous comprend quand vous parlez de 3 à 4 mn !

Une fois, j'ai fais un code qui a mis plus d'une heure "à tourner" !

Du contrôle ligne par ligne, feuille par feuille !

Impossible à vivre ! En modifiant le code VBA (en passant par plusieurs tableaux de données en VBA) je suis descendu à 20 secondes, qui pour une extraction annuelle est supportable !

@ bientôt

LouReeD

Merci de votre retour rapide,

il y des petits macros qui automatisent certaines tâches routinières,

mais je n'ai jamais utilisé VB pour toucher au mode de calcul.

Donc selon vous ca suit normalement le FICHIER.

Tellement bizarre.

Nous sommes 2 à utiliser un même fichier et les 2 se demandons comment se fai-il qu'il revient "souvent" en mode automatique (pas toujours).

Et pour la lourdeur, ca a apparut lorsque j'ai découvert la force des SOMMEPROD, qui se mettent à jour (sur demande manuelle idéalement) même si les fichiers sources sont fermés.

Quand vient le temps de compiler une source ouverte de 30 000 lignes, ca prend 30 sec

mais si le fichier est fermé, 3-4 minutes si pas plus,

D'où notre besoin de vouloir déterminer QUAND nous voulons que les calculs s'exécutent.

bonjour à tous

ma suggestion :

- séparer la saisie des données et l'exploitation des données en classeurs distincts

on saisit dans des feuilles en colonnes (comme de vraies bases de données). Pas de formules dans ces classeurs de saisie.

ensuite on crée des classeurs contenant les formules ou les TCD et/ou Power Query (il est 100 000 fois plus rapide que les formules pour lire des données ! )

s'il y a besoin de milliers de formules, alors il faut créer divers classeurs.

Par ex un qui va calculer des bilans en €, d'autres qui calculent les stocks etc.

et si possible, passer à Power BI Desktop gratuit pour toutes ces formules. Lui peut gérer des millions de données ! et des milliers de calculs !

dans 3 mois tu seras un dieu de PBI

note : Excel avec PQuery et/ou PBI permettent donc un travail d'équipe car chacun peut ouvrir un fichier tandis qu'un autre ouvre le sien

dans tous les cas, pas de VBA.

bon travail

amitiés à tous

Bonjour,

je ne serais pas si affirmatif sur le fait que le mode de calcul soit lié au classeur malgré le titre 'Calcul du classeur' dans les options.

Déjà le code concerne bien l'application :

Application.Calculation = xlCalculationManual 'ou xlCalculationAutomatic

en suite un test confirme qu'il s'agit bien de l'application et non du classeur (sur 2010)

Dans le ruban 'Formule' il y a un accès rapide au mode de calcul.

Par un clic-droit dessus on peut l'ajouter à la barre d'outils accès rapide qu'il soit toujours facilement accessible.

Ceci n'enlève rien au fait qu'un classeur optimisé est mieux qu'un classeur lent

eric

Bonjour,

je viens de faire une test, en enregistrant un fichier en calcul manuel, puis réouverture d'Excel, il est bien en automatique, ouverture du fichier avec le menu fichier / ouvrir et sélection du fichier, le calcul repasse en manuel. Mais cette option reste en manuelle tant que la session d'Excel n'est pas fermée...

Donc c'est lié sans être lié au fichier comme à la session d'Excel...

Excel ouvert, avec un fichier en calcul manuel, puis ouverture d'une nouvelle session d'Excel avec un nouveau fichier alors il sera en automatique, par contre un deuxième fichier ouvert dans une session déjà ouverte avec "manuel" sera alors en manuel...

Comme la plupart d'entre nous ouvrons (je crois) Excel en double cliquant sur l’icône du fichier, j'ai pris un raccourci en disant que c'était lié au fichier...

Voilà pour être vraiment plus clair.

de plus mon habitude fait que je ne travaille souvent qu'avec un fichier ouvert à la fois...

@ bientôt

LouReeD

Bonjour,

je viens de faire une test, en enregistrant un fichier en calcul manuel, puis réouverture d'Excel, il est bien en automatique, ouverture du fichier avec le menu fichier / ouvrir et sélection du fichier, le calcul repasse en manuel.

Chez moi le mode de calcul est celui du 1er fichier ouvert.

Si j'ai un fichier ouvert en calcul automatique et que j'ouvre celui 'calcul manuel' je reste en calcul automatique.

Si j'ouvre en 1er le 'calcul manuel' il est bien ainsi. Si j'ouvre un 'calcul automatique' je reste en calcul manuel.

Mais si je travaille sur un autre où je dois passer en calcul automatique, retourner sur le 'calcul manuel' ne le fait pas repasser en calcul manuel.

Ce n'est pas une propriété du classeur mais bien de l'application.

Bien entendu en restant dans la même session. 2 session sont indépendantes.

eric

Oui c'est l'option du premier fichier, je n'ai pas dis le contraire, mais l'information est contenue dans le fichier...

Lancez Excel "sans fichier" par défaut il est en auto, mais si vous faites "fichier" / "ouvrir" et sélectionner un fichier "manuel" alors Excel passera en manuel, donc il y a bien une info dans le fichier...

C'est pourquoi je finissais par dire que c'est un lié aux deux : au fichier (à défaut d'une position du calcul par défaut d'Excel) à l'application, car si plusieurs fichiers sont ouverts sur une seule sessions d'Excel alors cela prévaut pour tous les fichiers.

Bref, s'il n'y a pas de code qui remet en route le calcul en auto, un fichier enregistré en manuel devrait y rester... Il y a certainement un code qui fait le changement, ou bien alors plusieurs fichiers ouverts dans la même session d'Excel.

@ bientôt

LouReeD

un fichier enregistré en manuel devrait y rester...

à-priori à la condition unique d'être ouvert en premier, ce qui limite sérieusement sa fiabilité.

Il y a certainement un code qui fait le changement

Bah, le forcer à chaque ouverture

Private Sub Workbook_Open()
    MsgBox "passage d'excel en calcul manuel"
    Application.Calculation = xlCalculationManual
End Sub

Voire même à chaque activation si on veut être plus têtu que l'utilisateur :

Private Sub Workbook_Activate()
    If Application.Calculation <> xlCalculationManual Then
        If MsgBox("Passage d'excel en calcul manuel ?", vbYesNo) = vbYes Then Application.Calculation = xlCalculationManual
    End If
End Sub

et tant qu'on y est, pour les étourdis :

Private Sub Workbook_Deactivate()
    If Application.Calculation <> xlCalculationAutomatic Then
        If MsgBox("Passage d'excel en calcul automatique ?", vbYesNo) = vbYes Then Application.Calculation = xlCalculationAutomatic
    End If
End Sub

eric

Il y a certainement un code qui fait le changement

Bah, le forcer à chaque ouverture

En fait je voulais parler du cas présent, s'il ne reste pas en manuel, c'est qu'il y a un fichier qui s'ouvre et qui demande à passer en auto et de ce fait le fichier "en manuel" passe en automatique, il doit nous manquer une donner pour répondre à SteB1968...

@ bientôt

LouReeD

Je m'excuse d'insister mais pour moi non

Si un fichier est ouvert, l'ouverture d'un autre ne change jamais le mode de calcul.

Le mode de calcul est déterminé par le premier fichier ouvert (et donc ne pas avoir modifié le fichier vierge présenté au lancement non plus). Ensuite seule une action utilisateur (ou macro) sur l'option peut le changer.

Enfin c'est ce que j'ai constaté sur 2010, à voir si ça se confirme à partir de 2013 (?)

S'il ne l'ouvre pas en premier c'est mort.

eric

Bonjour, Salut à tous !

Je viens faire mon mea culpa avec un jour de retard, étant indisponible hier... Il est vrai que je n'utilise normalement pas le mode Calcul Manuel, sauf exceptionnellement de façon très ponctuelle et non durable et lorsque cela se produit j'apporte les modifications pour ne plus avoir à l'utiliser... J'ai donc testé avant-hier un peu rapidement en même temps que mes préparatifs de la journée du lendemain qu'un classeur enregistré avec un mode Manuel conservait bien ce mode à la réouverture... Mais il est vrai que ce n'est le cas que si ce classeur est le seul ou le premier à être ouvert dans la même instance d'Excel. L'application ayant acquis un mode le conserve pour les classeurs ouverts par la suite, même si l'on referme le classeur ayant provoqué le mode de calcul au départ...

Je rejoins donc les conclusions de LouReed et Eric, et aurait appris quelque chose de plus ! Mais c'est bien l'une des raisons pour lesquelles on échange dans les Forums.

J'ai souvenir d'avoir à l'occasion protesté auprès d'un demandeur de m'avoir fait chercher plus longuement que nécessaire à cause d'un mode de calcul laissé en Manuel. Et comme il m'est fréquent d'avoir plusieurs classeurs ouverts il est fort possible que j'aie émis une protestation auprès de l'un alors qu'un autre était à l'origine du mode ! Mes excuses rétrospectives générales...

On n'a toutefois pas éclairci totalement la question, si l'intéressé enregistre bien son classeur avec un mode Manuel, il doit le retrouver à l'ouverture à condition de l'ouvrir seul ou en premier... Si ce n'est pas le cas, il faut bien comme le constate LouReed que quelque chose rétablisse le mode Auto à l'ouverture...

Mais la vraie question demeure d'alléger le classeur de façon à n'avoir pas à utiliser de mode Manuel de façon permanente. Je rejoins jmd sur ce point (exception faite de son rejet systématique de VBA ), l'éclatement en plusieurs classeurs coordonnés assumant chacun un nombre plus limité de fonctions apporterait certainement des améliorations tangibles.

Bonne journée à tous.

Bonjour !

Oui je sais je suis pénible...

Ouvrez Excel sans fichier, il est en auto.

Faites "fichier" "ouvrir" et choisissez un fichier enregistré en mode "manuel" alors Excel passe en manuel...

C'est dans ce sens que je dis qu'il y a une info de mode de calcul dans les fichiers.

Mais il est vrai que si un fichier est déjà ouvert alors cette bascule ne marche pas.

Donc oui la bascule auto / manuel est lié à l'application (l'option fonctionne pour tous les fichiers ouverts)

mais il y a "une petite trace dans le fichier" qui fait qu'en l'absence d'ouverture de fichier autre, le calcul passe en manuel...

Bref....@ bientôt

LouReed

Oui LouReed ! Mais tout le monde est d'accord là-dessus, il me semble !

Merci à tous de votre précieux temps à décortiquer la problématique, je suis nouveau ici mais je suis impressionné de l'entraide qu'on y trouve, thumbs up !

Donc vous conviendrez comme moi que c'était pas évident à comprendre la logique.

en résumé je retiens :

  • Ca prend et conserve le mode calcul du 1er fichier ouvert de la sessions excel
  • Si aucun fichier d'ouvert encore, ca prend AUTOMATIQUE par défaut

Ce serait bien vous conviendrez, que Office permette un paramètre de calcul UTILISATEUR, qui suit l'utilisateur en priorité.

Mais bon.

d'ici là nous pourrons tous dormir avec une compréhension de plus grâce à vos analyses.

merci à tous

p.s. Je sais que les TCD sont plus efficaces que SommeProd, mais il ne répondait plus à notre besoin (les résultats doivent toujours être dans les mêmes cellules car deviennent sources de datas pour d'autres compilations)

J'aurais aimé vous partagé mon exemple, mais ca me disait que le fichier était trop volumineux

encore merci et bonne journée

Steph

Je vais essayer la proposition de Eriic

elle me semble fort intéressante pour les fichiers volumineux qui ont des sommeprod vers d'autres fichiers

Private Sub Workbook_Open()

MsgBox "passage d'excel en calcul manuel"

Application.Calculation = xlCalculationManual

End Sub

merci

Mais la vraie question demeure d'alléger le classeur de façon à n'avoir pas à utiliser de mode Manuel de façon permanente. Je rejoins jmd sur ce point (exception faite de son rejet systématique de VBA ), l'éclatement en plusieurs classeurs coordonnés assumant chacun un nombre plus limité de fonctions apporterait certainement des améliorations tangibles.

salut MFerrand, salut à tous

je ne rejette pas systématiquement VBA

le preuve : compte sur le forum le nombre de fils consacrés à VBA, et le nombre de fils où en effet je déconseille VBA. Je déconseille dans 1 cas pour 1000 environ

le reste du temps, je n'interviens pas.

pour le fil en cours, il FAUT dissocier la saisie et l'exploitation des données. C'est simple, facile à maintenir (modifications dans le temps) et rapide.

PVI

Il n' y a pas de saisies

Ce sont environ 30 000 lignes de données extraites d'un système de paies

que nous compilons pour comparer notamment avec des données budgétaires qui sont dans un autre système.

Je suis conscient que nous poussons considérablement EXCEL, alors que ACCESS serait probablement plus approprié,

mais notre organisation refuse de nous laisser développer en ACCESS.

Je dirais que hormis les calculs automatiques qui s'enclenchent à des moments non opportuns (sommeprod vers des fichiers fermés) environ 20 à 30 secondes suffisent pour obtenir nos compilation, qui répond amplement à nos besoins.

question

Private Sub Workbook_Open()

et

Private Sub Workbook_Activate()

tels que proposés

sont enclenchées quand au juste ?

car mes premiers tests avec MsgBox pour vérifier que ca a focntionné ne retourne rien à l'ouverture d'Excel et ou du fichier

merci

Rechercher des sujets similaires à "calcul manuel souhaite permanence comment"