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 !
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 rejoins donc les conclusions de LouReed et Eric, et aurait appris quelque chose de plus !
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 !
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
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 !
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