Poids du fichier, formules et tableaux

patwoman

XLDnaute Nouveau
Bonjour tout le monde.

J'ai un fichier énorme que j'aimerais alleger, et j'aimerais avoir votre avis avant de me lancer, parce que j'y connais pas grand chose en VBA.

Le fichier contient beaucoup d'onglets, avec à chaque fois un gros tableaux plein de calculs compliqués (recherchev, sommeprod, si, etc), puis un onglet "Base de donnée" qui regroupe toutes les données de tous les tableaux, en détail.
Certaines colonnes se repetent d'un onglet sur l'autre, ce qui allourdit encore le tout.
Et à tout ca, on rajoute pas mal de mise en forme pour les tableaux, pour que l'utilisateur final comprenne l'outil.
Je sais qu'excel n'est pas l'outil le plus indiqué, mais pour des raisons diverses, c'est lui que je dois utiliser.

J'ai déjà fait gaffe de virer les lignes/colonnes en trop, mais ca reste trop gros à mon gout.

A mon avis, une solution pour alleger tout ca, serait de faire les formules par macro plutot que direct dans excel.
Est-ce que c'est vrai ?

Si oui, je vois deux options :
- creer une macro "Function" et definir tous les calculs dont j'ai besoin, puis les appeler depuis les tableaux. Ca me parait le plus simple vu mon niveau, mais je ne suis pas certaine que ca allege vraiment le fichier.
- creer une macro "Sub", et tenter que tout se calcule via macro, avec juste les chiffres dans excel. Si ca vous parait la solution, et que vous avez l'adresse d'un bon tutoriel là dessus, je suis preneuse !

Vous en pensez quoi ? Vous avez d'autres idées ?

Merci d'avance !

Pat
 

Misange

XLDnaute Barbatruc
Re : Poids du fichier, formules et tableaux

Bonjour

Le plus efficace et de très loin dans excel c'est de faire UNE base de données unique PUIS à partir de là d'extraire les tableaux journalier, mensuels, par site ... dont on a besoin. Faire l'inverse est extrêmement lourd et rend difficile l'évolution des classeurs.
Ce lien n'existe plus

sinon:
Faire une fonction VBA qui effectue des calculs qu'excel fait nativement ne fait que ralentir le classeur. Le VBA est un langage LENT par rapport à ce qu'excel fait en natif. Ecrire =masomme(A1:10) avec une fonction personnalisée qui fait par exemple la somme et la multiplie par 2 est bien plus long en temps de calcul que d'écrire = somme(A1:A10)*2 directement dans la feuille (sur cet exemple simpliste, on ne verra cependant pas la différence !)

de même il ne sert à rien (si à ralentir !) d'utiliser le VBA pour écrire une formule dans une feuille de calcul, formule qu'excel évaluera ensuite.

Si les calculs sont à faire une fois, au moment où on entre les données dans une feuille, et que ces calculs ensuite n'ont plus à être évalués, il est effectivement plus efficace de faire le calcul en VBA et d'injecter le résultat (pas la formule ) dans la feuille de calcul.

Mais si les calculs doivent être mis à jour très souvent, cela dépend complètement de ce que sont ces calculs, comment on peut ou pas les optimiser en VBA, par exemple avec des arrays (tableaux internes).
 

patwoman

XLDnaute Nouveau
Re : Poids du fichier, formules et tableaux

Super, merci par la réponse, parce qu'en plus ton premier paragraphe repond exactement à la question que je n'avais pas réussi à formuler.

Les formules sont à faire une seule fois, donc peut etre que VBA fera partie de la solution, mais je vais commencer par réorganiser mes données selon ton conseil, en mettant les calculs sur la BDD, si ca se trouve, ca suffira pour ce dont j'ai besoin !

Merci encore :)
 

Discussions similaires

Réponses
5
Affichages
407
Réponses
4
Affichages
390

Statistiques des forums

Discussions
312 198
Messages
2 086 153
Membres
103 137
dernier inscrit
Billly