Réduire le poids de fichier en VBA

hemardjean

XLDnaute Occasionnel
Bonjour le forum bonjour a tous
J’ai une nouvelle question a vous posez.
J’ai un fichier qui fait actuellement 17,7MO et met beaucoup de temps a s’ouvrir car il contient des liaisons avec d’autres fichiers, des macros , des calculs avec formule et des listes déroulantes.
Ma question est la suivante :
Peut-on en VBA simplifier une partie des formules qui se trouvent avec les listes déroulantes. Celle-ci ce trouvent dans l’onglet »Plan lier menu » de B5 à F5 , les formules avec SI INDIRECT de B7 à F7,et les formules SI INDIRECT de K6 à K1O
(ici pour les explications car ces groupes de cellules se répètent plusieurs fois) .
Elles travaillent toutes ensembles et en rapport avec les cellules qui se trouvent de B4 à F4 (cellules /onglets) .
Pour plus de compréhension je vous joins une partie du fichier.

Merci a vous Cordialement A+
 

Pièces jointes

  • Plan_GEMRCN-2012v14.xlsm
    125.8 KB · Affichages: 61

Misange

XLDnaute Barbatruc
Re : Réduire le poids de fichier en VBA

Bonjour
tes macros ne se lancent que quand tu lances ton formulaire donc ce ne sont pas elles qui ralentissent ton classeur.
En revanche tu as des formules qui contiennent des références effacées.
=SI(NB.SI(INDIRECT("'"&DECALER(#REF!;-4;)&"'!$C$2:$C$250");#REF!)=0;"";RECHERCHEV(#REF!;INDIRECT("'"&DECALER(#REF!;-4;)&"'!$C$2:$L$250");5;0))
Quand on a ce genre de pb de lenteur d'un classeur il faut se poser la question de ce qui doit vraiment être mis à jour de façon continue et ce qui peut l'être seulement sur ordre.
Par exemple : si tu as une table qui va chercher un nombre de calories (ou un tarif) dans un classeur externe, il y a fort à parier que les valeurs dans cette table ne bougent pas souvent. Dans ce cas il est préférable de faire la mise à jour soit en mettant le calcul dans le classeur sur ordre (inconvénient majeur, c'est pour tout le classeur) soi en traitant le problème par macro (que tu lances quand c'est nécessaire) et en n'ayant que les valeurs et non pas des formules dans tes cellules.

Mais commence par mettre à jour tes formules pour qu'elles n'échouent pas du fait des #ref.
 

hemardjean

XLDnaute Occasionnel
Re : Réduire le poids de fichier en VBA

bonjour le forum bonjour Misange

Pour repondre a ta question sur les #ref je ne les aient pas dans mon fichier complet.
Pour la 2eme comment fais t'on pour les mises a jour par macro?
Merci de tes reponses
@+
 

Misange

XLDnaute Barbatruc
Re : Réduire le poids de fichier en VBA

Bonjour
Le principe c'est de dire par macro
for i= 1 to laderniereligne
range("A" & i)= la formule qui va bien
next i

pour trouver la formule qui va bien, je te conseille d'utiliser l'enregistreur de macros.
Tu vas dans ta feuille, tu cliques sur cellule contenant la formule à traduire en VBA
tu lances l’enregistreur de macros
tu cliques dans une cellule et tu y colles ta formule, tu arrêtes l'enregistreur et tu récupères la formule.
Tu as un peu de boulot en vue :)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 749
Messages
2 091 623
Membres
105 009
dernier inscrit
aurelien76110