(VBA) Optimiser utilisation BDD pour éviter le recalcul

Int0x

XLDnaute Occasionnel
Bonjour à tous,

Je suis en train d'améliorer le confort d'utilisation d'un collègue en ajoutant quelques macros, qui lui simplifient pas mal de chose.

Globalement, le fichier se décompose en:
Onglet A = extraction depuis un ERP, base de données
Onglet B = Quelques calculs depuis l'onglet A (principalement des Somme.si)
Onglet C = onglet principal, pas mal de calculs depuis l'onglet B et l'onglet A

Le principe de simplification est le suivant:
- il vient manuellement coller son extraction dans l'onglet A
- il lance une Macro1, qui met en forme l'onglet A et rajoute quelques formules (concatener & 2 rechercheV sur l'onglet B).
- il lance une Macro2, met à jour les formules qui vont bien dans les onglets B & C

J'ai donc 2 onglets (B & C) alimentés par un "gros" onglet (A), lui même disposant de quelques formules.

Le problème, c'est que l'utilisation de cette base de données (onglet A) est énormément ralentie. S'il utilise des filtres pour rechercher une ligne, il y'a 15-20s de recalcul à chaque fois (en bas à gauche, "recalcul 5%..").

Je suppose que cette lourdeur vient uniquement du fait que tout se recalcule en direct ?
Existe-t-il une fonction/macro qui me permettrait de n'actualiser les calculs qu'après un clic ? Comment puis-je améliorer cette utilisation de bdd (aucun soucis si je manipule la bdd de l'extraction) ? Quel facteur ralenti mon fichier (les formules sur l'onglets A ? C ? Les 2 ?) ?

Une personne m'a parlé de la touche F9, que je ne connait pas, mais qui a l'air plus ou moins de correspondre à mes attentes.

Vous comprendrez aisément que je ne peux malheureusement vous joindre de fichiers pour exemple.

Par avance merci pour vos conseils, suggestions, propositions, etc...
Int0x
 

kjin

XLDnaute Barbatruc
Re : (VBA) Optimiser utilisation BDD pour éviter le recalcul

Bonjour,
Activer/désactiver le recalcul automatique lors du lancement des procédures
Code:
Sub macro1()
Application.Calculation = xlCalculationManual
'la procédure
Application.Calculation = xlCalculationAutomatic
End Sub
Sinon, passer en mode calcul manuel (sur ordre) dans le menu outils/options/calcul, et appuyer sur la touche F9 lorsque le recalcul est requis
A+
kjin
 

Int0x

XLDnaute Occasionnel
Re : (VBA) Optimiser utilisation BDD pour éviter le recalcul

Bonjour et merci Kjin,

Ta réponse me convient parfaitement, c'est tout à fait ce que je cherchais !
(ça doit tellement paraitre "simpliste" pour vous :D )

Merci beaucoup ! :)
 

Discussions similaires

Réponses
4
Affichages
297

Statistiques des forums

Discussions
312 249
Messages
2 086 600
Membres
103 256
dernier inscrit
Melomaniak