Temps d'execution moyen d'une macro

Fermé
wida Messages postés 150 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 28 novembre 2011 - 23 juin 2009 à 13:48
wida Messages postés 150 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 28 novembre 2011 - 23 juin 2009 à 15:22
Bonjour,

j'aimerai savoir qu'elle est le temps d'execution moyen d'une instruction en VBA,
au fait j'ai une macro qui met jusqu'a 10 mn de temps d'execution et je trouva pas ça normale!! je pense si je met la meme chose en c++ ça mettra moin de temps!!
qlq un a t il une idée?
A voir également:

4 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
23 juin 2009 à 14:50
Bonjour

tu es libre de faire ce que tu veux....

en vba ce qui ralentit le plus sont :
les affichage et mise à jour de l'affichage.
(windows fait le tour de la fenêtre et de l'appartement)
en VBA l'utilisation de application.screenupdatinge=false puis à la fin =true

maintenant si vba te prends 10 mn c'est sans doute qu'il en a besoin.
moi je dirais : 10 mn ( cela te donne le temps de lire tes mails)
et de toute manière si vba ne l'avais pas qqun aurait passé 2ou3h avec une autre méthode.

La question est donc combien de temps vas-tu gagner?

fais un essai simple
en vba et en C genre met un chiffre ale&toire en A et en B en c= A*2+B sur 50000 cellules
top chrono
tu auras des surprises.



Bon courage.
2
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
23 juin 2009 à 14:06
Le "temps moyen" d'execution dépend du nombre de calcul que le processeur doit effectué.

Pour les plus "agés" , je dirai "le fût du canon pour refroidir"... la réponse est c'est écrit dans le manuel
..... un certain temps ; )

mais sérieusement cela dépend plus de l'architecture et de l'os que de l'applicatif.

ainsi, un même programme vba (excel) ou vb ou c++ te donneras 2 temps d'exécution différent selon l'os
et la machine.

pour preuve. l'execution d'un code basic sous open office 3.0 avec win xp me donnes une différence de 12s
avec le même code sous ubuntu 9.04 et openoffice 3.0. ( même machine)

donc en conclusion si ton code met trop de temps je te conseille 2 choses :

1) simplifie les boucles et les actions
2) utilise la barre d'état pour savoir si ça tourne ou non.
regarde application.statusbar....

Met si tu veux écrire en c++ ... tu as mon autorisation ...mais tu n'en a pas besoin.

A+

A+
1
wida Messages postés 150 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 28 novembre 2011 17
23 juin 2009 à 14:25
Merci Bidouilleu_R pour ta réponse,
au fait, je voulai savoir si le VBA utilise une couche intermediair (entre le vba et l'assambleur) contrairement au c++ et ce qui cause ce retard la!
pour mes calculs je les ai simplifier le plus possible!!
la meilleur façon serai de les faire sous visual c++ mais j'arrive a comprendre toute les fonctions qu'il a dans mon excel.h ( je trouve pas les methodes qu'il me faut pour ouvrir un fichier excel, choisir telle feuille, telle colonne.. etc), ya trop de classe dont je connai pas l'utilité!!
please help!
0
wida Messages postés 150 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 28 novembre 2011 17
23 juin 2009 à 15:22
c'est sur que je vais gagné du temps, mais je veux gagner le plus possible, en plus une utilsation du CPU a 100% pendant 10mn!!! c'est pas du tt performant, ça empeche d'autre processus de s'executer et même n'importe quel autre manipulation et ça risque aussi de tout planter avant de finir!!
pour l'essai, je l'ai fait, ça ne prend meme pas une seconde!
0