Ce qui ralenti l'exécution d'un fichier

  • Initiateur de la discussion Initiateur de la discussion propagandeman
  • Date de début Date de début

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 !

P

propagandeman

Guest
Bonjour,

Je n'ai pas su trouver dans le forum des posts se rapprochant de mon problème, donc le voici.

Dans mon entreprise nous travaillons beaucoup avec Excel. Les utilisateurs sont très friands des formats conditionnel, des liaison entre fichier ( recherchev etc),du coloriage de cellule etc. Le problème étant qu'en cumulant le tout et en grande proportion, cela ralenti le bon fonctionnement des fichiers. Mon but est donc d'alléger les fichiers tout en gardant leur efficience.

Mes questions sont donc celles-ci :
- Y a-t-il un hiérarchisation de ce qui alourdi ou ralenti Excel?
- Est-il possible de le quantifier? De l'analyser?
- Comment?

Merci
 
Re : Ce qui ralenti l'exécution d'un fichier

Bonjour

Difficile de donner une réponse très quantitative.
Dans l'ordre approximatif voilà ce qui me vient :

  1. les formules qui travaillent sur des colonnes entières au lieu de ne travailler que sur les plages contenant effectivement des données. Le pire et de très loin : les formules matricielles sur des grandes plages.
    • LA soluce la plus simple et rapide, qui ne demande pas de travail, utiliser sans modération les tableaux dans excel (onglet accueil/style/mettre sous forme de tableau). Outre l'aspect esthétique et pratique (bandes de couleurs alternées),
      • les tableau s'adaptent automatiquement quand on ajoute de nouvelles données juste en dessous de la dernière ligne
      • ils définissent sans avoir rien à faire des plages dynamiques (au lieu d'utiliser à tire larigot des =decaler $a$1;1;;;nbval($A:$A)...
      • on peut avoir plusieurs tableaux dynamiques (du même nombre de colonnes...) sur une même feuille feuille (essayez de faire cela avec decaler...)
      • les formules d'une ligne sont automatiquement recopiées dans celle qui se crée quand on ajoute des données dans le tableau. Pas besoin par conséquent de faire des formules qui prévoient qu'on ajoutera des données. On ne travaille QUE sur ce qui est effectivement dans la feuille.
      • les graphiques qui utilisent les colonnes d'un tableau comme source de données se mettent à jour tout seuls. du fait du point précédent, on n'a pas besoin de prévoir dans la source de données des formules qui tiennent compte des valeurs futures (mois non écoulé...).
    • Lorsque la feuille est appelée à contenir un grand nombre de lignes, s'accumulant au fil du temps par exemple,
      • prévoir de la remplir par macro et non pas en laissant les formules dans la feuille. Ceci évite que toutes les formules de la feuille soient réévaluées à chaque modif de la feuille (formules matricielles en particulier).
      • au minimum, lorsque des données n'ont plus besoin d'être modifiées, faire un copier/coller valeurs pour supprimer les formules n'ayant plus lieu d'être.
  2. les mises en forme conditionnelles qui travaillent sur toute une colonne
    • idem, on peut utiliser les tableaux pour limiter les plages sur lesquelles il faut travailler.
  3. Les styles. Certains usent et abusent des formats (gras couleur, fond, taille de police, fonte...). Ceci peut non seulement alourdir le classeur mais aboutir à son plantage. A savoir : tout format utilisé une fois (une simple variation de la taille de la police enregistre un nouveau format dans le classeur) reste stocké dans le classeur, même si il n'est plus utilisé. Restez sobres ! vos classeurs y gagneront en lisibilité (trop de formats tue les formats) et en poids.
  4. Les graphiques. Ils prennent une place importante en mémoire et sont une source majeure de ralentissement sur excel 2007 (amélioré avec excel 2010). Au lieu de faire 12 graphiques différents pour analyser un seul tableau, essayer de ne faire qu'un seul graphique sur lequel on fait varier les paramètres (au besoin en définissant les séries à représenter avec des menus déroulants). En tous cas, ne pas recopier une feuille contenant 12 graphiques 365 fois (un par jour de l'année...). Vous ne pourrez jamais regarder tous les graphiques en une fois de toutes façons... Au besoin prévoir de les créer par macro à l'activation de la feuille ou sinon utilisez là encore tant que possible un modèle de graphique sur lequel vous faites varier les paramètres.
  5. Les liaisons avec des classeurs sur le réseau. A limiter au strict minimum, surtout si le réseau est encombré. Certaines données peuvent avoir besoin d'être mises à jour seulement une fois de temps en temps. Dans ce cas là penser à mettre ces liaison en mise à jour manuelle. Au besoin faire une petite macro qui ne lance que lorsque c'est nécessaire la mise à jour.
  6. Dans les macros :
    • mettre le mode de calcul sur manuel en déut de macro, le remettre sur auto en fin de macro. Cette simple précaution peut accélérer d'un facteur 10 la vitesse d'exécution des macros. En effet dans de nombreux cas, notamment quand les macros travaillent ligne à ligne, chaque ajout de donnée entraîne un recalcul de la feuille entière. Autant ne le faire qu'une seule fois à la fin. Ajouter application.screenupdating=false c'estbien mais c'est peanuts par rapport au mode de calcul manuel.
    • utiliser les arrays (tableaux internes en VBA) autant que possible. Ceci accélère ++++ les opérations.
    • Inutile de mettre une macro par module, ça alourdit inutilement les classeurs
Voilà un début de liste, il y a certainement bien d'autre choses encore !

en complément des infos
Ce lien n'existe plus
Ce lien n'existe plus
Ce lien n'existe plus
Ce lien n'existe plus
 
Dernière édition:
Re : Ce qui ralenti l'exécution d'un fichier

Bonjour Misange,
Trop TOP de mettre sous forme de tableau, je n'avais jamais bien poussé le truc mais cela s'avère super.
Tellement simple à utiliser exemple pour avoir le nombre de ligne en VBA MsgBox [Tableau1].Rows.Count
Heureux d'avoir appris un nouveau truc.
Merci Misange
Bruno
 
Re : Ce qui ralenti l'exécution d'un fichier

Bonjour Misange,
Trop TOP de mettre sous forme de tableau, je n'avais jamais bien poussé le truc mais cela s'avère super.
Tellement simple à utiliser exemple pour avoir le nombre de ligne en VBA MsgBox [Tableau1].Rows.Count
Heureux d'avoir appris un nouveau truc.
Merci Misange
Bruno

Franchement, je ne comprends pas comment microsoft peut être aussi nul dans sa communication : ils font des trucs géniaux qu'ils ne mettent pas en avant et en revanche ils font un marketing d'enfer sur des trucs inutiles voire hideux (les graphiques par défaut d'excel 2007 et +...). Je ne peux plus me passer des tableaux tellement ils simplifient excel. Certains ici doivent commencer du reste à en avoir marre de me voir les mettre en avant chaque fois que possible 🙂
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour