Réduire le temps de calcul

Résolu
MAXIMO71
Messages postés
46
Date d'inscription
samedi 25 mars 2006
Statut
Membre
Dernière intervention
7 juin 2007
- 14 mai 2007 à 20:15
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
- 14 mai 2007 à 22:26
Bonjour, je suis confronté à un problème de temps de calcul d'un code.
Ce code permet la création de chaînes de 4 caractères qui sont placées dans des tableaux en fonction de plusieurs paramètres.
Le temps de création des chaine est bon moins de 30 secondes pour environ 2 000 000 de chaine, en revanche dès qu'il faut les ranger dans des tableaux sous word, c'est plus de 15 minutes. En plus lors de l'execution du code, j'ai un écran blanc sous les yeux je cherche donc d'une part à réduire le temps de calcul, d'autre part à ne pas avoir cet écran blanc et si ce n'est pas trop demandé si il est possible de faire une sorte de barre de défilement pendant la réalisation du code genre résumé de l'action en cours.

Merci à ceux qui m'ont lu et merci beaucoup à ceux qui pourront m'aider.

MAXIMO71

3 réponses

cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
14 mai 2007 à 20:29
Salut
Sans détail de la méthode que tu utilises pour "ranger" ces données sous Word, difficile de t'aider.Ranger Ordonner ou Copier ?

Pour l'écran blanc, c'est dû au fait que la macro travaille sans que tu ne lui laisse le temps de souffler, sans lui laisser le temps de gérer son graphisme.
Dans ton code, ajoute un "DoEvents" de temps en temps, mais attention, ça ralentira encore l'exécution du code.

Reposte ta question avec plus de détails (comment fais-tu l'écriture dans word ? fais-tu une boucle ? qu'y a t-il dedans ? ...)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
3
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
14 mai 2007 à 20:34
Bonjour,

Le traitement sera moins long si tu inhibes la mise à jour de l'affichage pendant tes traitements..
Compmence donc déjà par celà.
3
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
14 mai 2007 à 22:26
Oui, effectivement, un p'tit coup de Application.ScreenUpdating = False (à remettre à True à la fin du traitement) réduira le temps d'exécution lors de la mise en page

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3