Microsoft 365 Lenteur, calculs manuels et macro

QualitéNG

XLDnaute Nouveau
Bonjour à toutes et à tous,

J'ai appris à utiliser Excel dans le cadre professionnel à l'aide de tutos mais je suis aujourd'hui dépassé, j'ai besoin d'aide. Merci pour vos réponses.

Je gère pour mon employeur un planning annuel de collaborateurs ayant un grand nombre de conditions de remplissage et de statistiques. Au fil des années j'ai agrémenté le fichiers de nouvelles fonctionnalités, donc de nouvelles formules, dans un fichier de plus en plus volumineux et lent.

La lenteur est sans doute due à la surutilisation de formules lourdes et/ou volatiles comme INDIRECT par exemple. Ce n'est pas vraiment un problème en soit car je passe en calculs manuels et un coup de F9 pour mettre mes résultats à jour qu'une fois quand j'en ai besoin.

Or ce magnifique fichier, sur lequel beaucoup de décisions reposes, est partagé entre une dizaine de personnes, qu'on nommera les Décideurs. Leurs utilisations ne se résument qu'à un remplissage et à des prises de décision rapides à partir des résultats. F9 ne fait pas parti de leur jargon. Même si j'explique à chaque Décideur le F9 et que je configure chaque Excel en manuel, je sais que dans la hâte F9 sera oublié, des mauvaises décisions seront prises et je serais tenu responsable car trop compliqué. Je ne parle même pas des mouvements chez les Décideurs où faut reconfig, réexpliquer, etc.

Etape 1 : j'ai imaginé un bouton "MAJ CALCULS". J'ai enregistré une macro où je passe en manuel et je calcule la feuille. C'est parfait, si excel est config en auto, il passe du coup en manuel pour les prochaines fois.

Etape 2 : comment mettre en évidence que les résultats ne sont pas à jour ? J'ai imaginé un changement de format. Les calculs sont en format1 tout le temps et passe en format2 une fois cliqué sur MAJ CALCULS.

Etape 3 : je me suis dit qu'à chaque modification de la feuille, il faudrait repasser automatiquement les résultats impactés en format1. C'est là que je peine. Comment faire ? Il faudrait que cela se passe quand une formule est impactée, et se passe qu'une fois jusqu'à l'utilisation du bouton MAJ CALCULS. Pour rappel le but est d'éviter la lenteur du fichier.

Je joins un fichier simplifié pour illustrer. Mes connaissances sont limitées et je ne maîtrise pas le VBA.
 

Pièces jointes

  • MAJ CALCUL MANUELLE.xlsm
    41.4 KB · Affichages: 12

chris

XLDnaute Barbatruc
Bonjour

Le classeur est en mode partagé ? A priori non puisque tu as un tableau structuré dans l'exemple.
Ces stats ne pourraient-elles pas être faites par PowerQuery et TCD ?

Je mettrais un avertissement avec obligation de cliquer dessus à l'ouverture et à la fermeture en provoquant le recalcul avant fermeture
 

QualitéNG

XLDnaute Nouveau
Bonjour,

Merci @chris pour ta réponse. Je suis d'accord avec toi et Confucius !

J'ai pris le temps de me renseigner sur PowerQuery que je n'ai jamais utilisé. J'ai le sentiment que ce n'est pas l'outil dont j'ai besoin. Peut-être que je me trompe, je veux bien une illustration pour voir comment cela pourrait m'aider. Je cherche à automatiser, alléger, simplifier et cadrer pour des utilisateurs qui ne feront que du remplissage de cases. Je ne souhaite pas intégrer un outil supplémentaire et une action de transformation de source de données.

Quand au TCD, j'y avais déjà songé. J'ai regardé à nouveau, ça peut être utile mais plus pour des statistiques annuelles. Quoiqu'il en soit c'est une piste très intéressante et je vais la travailler, même si aujourd'hui je n'ai pas l'idée qui m'aidera. Dans mon post initial, je parle de "statistique" mais le terme est mal choisi. Il s'agit de données qui orientent le remplissage de planning dans un métier où beaucoup de conditions sont à prendre en compte.

Le classeur que j'ai joins est un exemple très simplifié, non partagé, c'est juste pour illustrer. Mon fichier de base est nettement plus complexe et partagé. Il est déjà très abouti, fonctionnel et je veux juste l'alléger pour faciliter son utilisation, notamment par des gens qui ne maitrisent pas du tout Excel.

Si mon idée première de faire un bouton est mauvaise, que pouvons nous faire d'autres ? Il faut que le fichier soit moins lent, que les données soient visibles instantanément (quelque soit la zone de remplissage) pour chaque jour, chaque semaine, chaque quinzaine, chaque mois. J'utilise la formule INDIRECT pour récupérer des plages de cellules variables (j'ai une idée pour une formule alternative mais je n'ai pas encore testé).

Encore merci pour vos conseils, vive internet !
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

La lenteur est sans doute due à la surutilisation de formules lourdes et/ou volatiles comme INDIRECT par exemple. Ce n'est pas vraiment un problème en soit car je passe en calculs manuels et un coup de F9 pour mettre mes résultats à jour qu'une fois quand j'en ai besoin.
Tu as bien fait de ne pas poster le vrai fichier puisqu'il comporte des informations non anonymes ; mais perso, ne l'ayant jamais vu, j'aurais plus de doute que toi. 🤔

La lenteur peut venir de plusieurs choses (formules matricielles, MFC, etc.), et peut-être qu'un bon nettoyage du fichier suffirait à résoudre (ou presque...) ce problème de lenteur et éviterait le <F9>. ;)
 

QualitéNG

XLDnaute Nouveau
Bonjour,

Le nettoyage est la chose que je fais déjà... je supprime les MFC des mois échus. Il m'est arrivé aussi de figer les valeurs qui ne devaient plus bouger mais utile pour des stats annuelles.

J'ai découvert récemment que la configuration de calcul manuel était une mauvaise idée car j'ai des flux qui viennent incrémenter d'autres fichiers mais s'ils sont ouverts, les formules n'agissent pas et mon flux foire quand il récupère des nouvelles données. Bref oublions ça alors...

Du coup je vais faire ça :
- simplifier le visuel pour alléger les MFC (amélioration faible car visuel très abouti déjà)
- minimiser les INDIRECT (j'ai une idée, on verra bien)
- faire un TCD pour les stats annuelles
- croiser les doigts pour que cela aille mieux

Que pensez vous si à la place d'une MFC, j'opte pour du VBA ? Je ne maîtrise pas le VBA mais je trouverais bien des tutos. Est-ce que le VBA sera plus léger ou plus efficace ?
 

TooFatBoy

XLDnaute Barbatruc
Oui, un coloriage par macro sera plus léger... s'il ne se fait pas à chaque modif mais que tu le lances manuellement uniquement quand c'est nécessaire... du coup c'est beaucoup moins utile et moins pratique. :(

Perso, je peux bien évidemment me tromper, mais je reste persuadé que ton fichier a (au moins) un souci quelque part, et que s'il n'avait plus ce(s) souci(s) tu pourrais garder tes MFC. ;)
(exemple : tu as un DropDown en G2 dans ton fichier simplifié. Que fait-il là ???)

Tu utilises des tableaux structurés ?
 
Dernière édition:

QualitéNG

XLDnaute Nouveau
Tu utilises des tableaux structurés ?
Pas actuellement. Le tableau fait 700 lignes, soit 52 semaines de 7 lignes, séparées de lignes de donnés pour le remplissage des semaines/quinzaine/mois. Et de 60 colonnes de collab dont une dizaine de données pour le remplissage par jour. C'est une version plus fournie que ce que j'ai envoyé plus haut.

J'ai besoin de garder un œil sur les mois passés et à venir pour avoir des infos donc le filtre d'un tableau structuré ne m'aiderait pas tant que ça.
Je ne vois pas de gain non plus dans les formules, les plages de présence des collab sont dynamiques, je ne pense pas que le tableau structuré m'aide aussi pour ça.

A quoi tu penses qu'il peut m'aider ? Mes connaissances sont très limitées, je suis convaincu que je peux l'optimiser aussi. C'est justement ce que je veux faire pour 2023.
 

TooFatBoy

XLDnaute Barbatruc
A quoi tu penses qu'il peut m'aider ? Mes connaissances sont très limitées, je suis convaincu que je peux l'optimiser aussi.
Ca aurait permis de ne plus être embêté avec les MFC : tu mets la MFC sur la première ligne et elle s'adapte automatiquement sur la totalité des lignes.

Mais tu as raison, ton tableau est malheureusement trop "mal foutu" pour pouvoir utiliser un tableau structuré. :(
 

Discussions similaires

Réponses
15
Affichages
482

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16