Vba execution longue (>5min)
Résolu/Fermé
Jabba the Hutt
Messages postés
32
Date d'inscription
vendredi 22 janvier 2010
Statut
Membre
Dernière intervention
2 août 2010
-
17 mars 2010 à 18:13
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 19 mars 2010 à 21:16
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 19 mars 2010 à 21:16
A voir également:
- Vba execution longue (>5min)
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Signature trop longue gmail ✓ - Forum Gmail
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Erreur d'exécution 1004 ✓ - Forum Excel
1 réponse
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 240
18 mars 2010 à 07:24
18 mars 2010 à 07:24
Bonjour,
En début de code met application.screenupdating = false
remet à true en fin de code.
Et si ça ne suffit pas tu peux interdire le recalcul (si tu as beaucoup de formules par exemple) avec Application.Calculation = xlManual
Le rétablir avec xlAutomatic, et si besoin forcer un recalcul avec calculate
eric
En début de code met application.screenupdating = false
remet à true en fin de code.
Et si ça ne suffit pas tu peux interdire le recalcul (si tu as beaucoup de formules par exemple) avec Application.Calculation = xlManual
Le rétablir avec xlAutomatic, et si besoin forcer un recalcul avec calculate
eric
18 mars 2010 à 10:49
J'ai rajouté application.screen....
ça n'a pas trop changé la durée d'exécution, avec le recalcul xlautomatique cela à même buggé (le classeur était à la base défini en calcul sur ordre, dans outils, options ...). du coup je l'ai enlevé.
En fait je pense que mon code est mal écrit. Je me pencherai sur l'écriture de quelque chose de plus efficient.
encore merci.
19 mars 2010 à 21:16
En le regardant de plus près la structure est incorrecte. Je suis même étonné que tu aies le résultat désiré...
Si tu écris
if test... then résultat...
ton if est terminé, plus le droit aux else et autres endif
Si tu veux ton if sur plusieurs lignes ne rien mettre après le then :
Evite les
if test1... then if test2... then résultat...
Imbrique tes if et referme-les par des endif :
Quand tu auras réécris ton code avec ces règles ont y verra plus clair pour améliorer si besoin
eric