Fichier lourd pour cause de formules matricielles nombreuses

Bonjour

J'ai un fichier avec un onglet qui récapitule 5 autres onglets dans un tableau. Celui-ci comporte environ 650 cellules ou dans chacune d'elle, j'ai une formule matricielle. Le fichier est de ce fait très lourd. Existe-t-il un code qui allègerait le fichier et que je pourrais intégrer à chaque cellule ?

{=SOMME((Suivi_OT[Type OT]="ZPRE")*(Suivi_OT[Equipe]='Bilan mensuel'!H1)*(Suivi_OT[Statut]="PROG"))}

Les variables dans chaque cas sont : ZPRE, H1, PROG

Merci

bonjour,

Les formules n'ont rien à voir avec la taille du fichier.

Au pire elle peuvent mettre un certain temps à recalculer, mais la lourdeur : non !

Fournir le fichier SVP

A+

Bonjour Galopin,

@gillou :

  • si tu dis lourd au sens du poids du fichier je suis d'accord avec galopin
  • si tu dis lourd au sens de la lenteur, en effet ! surtout quand tu introduis de nouvelles données, dans ce cas procède par TCD (mais qui ne réduira pas la poids du fichier, mais sa réactivité).

Bonjour

Je pense qu'avec le fichier ce sera plus parlant. Dans l'onglet "Bilan mensuel" on retrouve plusieurs fois des formules similaires; Cela est fastidieux et de plus, à l'avenir, il y aura aussi d'autres onglets pour faire des tableaux à partir desquels il y aura des graphs. Soit au total plus de 1000 fois des formules à faire. Le fichier à la fin devrait faire plus de 15 Mo (J'ai enlevé 90 % des données).

Y a t il moyen d'alléger ou dois-je faire plusieurs fichiers avec des liens ? Existe-t-il un moyen afin de ne pas avoir à faire des lignes d'écriture et donc autant d'erreur possible ?

Merci

Je ne vois pas d'autres façons que de le faire en VBA. Cela permettrait de supprimer une grande partie de ces formules répétées.

PS : ton mot de passe est nécessaire : tu le changeras.

Le mot de passe est PYB. Et effectivement le but est bien d'éviter la répétition des formules;

Bonjour à tous

Selon les versions Excel les solutions ne sont pas les mêmes alors merci de compléter ton profil en indiquant ta version.

Le problème des formules c'est que ta structure n'a pas été étudiée pour pouvoir utiliser une formules unique se servant des titres, qui est effectivement ingérable en l'état

Quel que soit la solution choisie il faut définir une logique claire

J'utilise deux versions. 2010 et 2013 selon si c'est au travail ou à la maison

RE

Ta boîte peut-elle t'installer l'add on PowerQuery (totalement intégré à Excel 2016 et +, en add sur 2010 et 2013) ?

La synthèse de n tableaux structurés y est simple et rapide

Je ne pense pas, vu la complexité qu'il y a pour avoir un logiciel courant. C'est dur dans les grosses boites

Bonjour à tous ...

si en effet tu ne peux pas ajouter un add-on, alors la solution la plus simple est compte tenu que tes données sont bien structurées :

  • ajouter un indicateur temporel dans ton tableau Suivi_OT sur la semaine et sur le mois
  • travailler par TCD avec des segments sur les statut et autre commentaire

L'avantage en temps (et en simplicité) est que tes données de sytnthèse ne seront pas calculées au fil de l'eau mais n bloc en une seule fois par actualisation du TCD. Et dans ce cas il n'y a plus aucune formule matricielle dans Bilan Mensuel. Ces quelques colonnes supplémentaires ne nécessitent aucune puissance de calcul.

Merci. Je me lance dessus

Juste un essai de TCD, à reformater

Il y a aussi une autre solution que j'utilise parfois : à partir d'un TCD complet sans segment, reporter les données dans ton tableau de synthèse en remplaçant toutes les fonctions matricielles par une fonction LIREDONNEESTABCROISDYNAMIQUE, c'est très efficace car là encore les calculs se font en actualisant le TCD (c qui peut se programmer simplement lors de l'activation de l'onglet d synthèse - le TCD restant en onglet masqué- ).

A relire le sujet, il y a aussi une autre dimension à gérer : le nombre d'onglets.

Je ne sais pas à quoi c'est dû dans ton cas. Mais s'il s'agit d'infirmations provenant de sources / services différents, le plus simple et de créer un fichier récap qui par VBA va compiler les différents fichiers-source. C'est assez simple et courant à faire, il y a plusieurs exemples sur le forum.

Juste un essai en VBA pour te donner une idée. Il permet de supprimer 210 formules dans la feuille "Bilan mensuel". Le tableau se remplit assez lentement, mais quand c'est fait, tout est plus rapide (Bouton "Fill" dans la feuille "Essai").

20emsp.zip (496.14 Ko)

@Optimix,

pour accélérer la macro il faut travailler en arrays, absorber les données dans un tableau VBA (array) et à la fin du calcul, reporter en un bloc le résultat

mais je n'ai pas compris ta proposition, car les formules matricielles subsistent, ce sont elles qui ralentissent ! voir en B16

RE

Je ne pense pas, vu la complexité qu'il y a pour avoir un logiciel courant. C'est dur dans les grosses boites

Un grosse boîte qui bosse avec une version datant de 7 ou 10 ans, devrait au moins accepter d'y incorporer un addon émanant de microsoft et faisant partie des versions suivantes...

pour accélérer la macro il faut travailler en arrays, absorber les données dans un tableau VBA (array) et à la fin du calcul, reporter en un bloc le résultat

J'ai essayé, mais c'est encore plus long pour ce qui a été fait. Cette macro n'était qu'un début, reste à traiter les jointures avec la feuille "Suivi des OT" et là un array s'impose pour accélérer le tout, je suis d'accord.

Merci. Je me lance dessus

A ta disposition pour poursuivre via TCD si besoin.

Si tu souhaites aussi préserver ta forme de présentation, on peut aussi travailler avec LIREDONNEESTABCROISDYNAMIQUE

Et si tu souhaites réduire les 650 feuilles, on peut aussi en discuter.

Rechercher des sujets similaires à "fichier lourd cause formules matricielles nombreuses"