Bonjour,
Petite question sûrement toute simple pour les pros du vba, vous utilisez quoi comme fonction pour tracer le temps d'execution de vos codes VBA ???
Time avant et apres l'execution ???
Merci d'avance,
Bonjour,
Petite question sûrement toute simple pour les pros du vba, vous utilisez quoi comme fonction pour tracer le temps d'execution de vos codes VBA ???
Time avant et apres l'execution ???
Merci d'avance,
Regarde là
OK Thanks, j'avais parcouru le forum et les faqs vba, mais n'ai pas encore le réflexe d'aller voir dans la partie sources du forum.Envoyé par ouskel'n'or
J'ai voulu adapter ton code :
Mais visiblement c'est pas possible de passer une fonction en argument d'une autre fonction, même en passant juste son nom dimensionné en string.. ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Public Function Duree_Execution(fonction As String) As String Dim debut As Double Dim fin As Double Dim duree As Double Dim min As Integer Dim sec As Integer Dim ms As Integer debut = GetTickCount& fonction fin = GetTickCount& duree = fin - debut min = Int(duree / 1000 / 60) sec = Int((duree / 1000) - (min * 60)) ms = duree - (sec * 1000) - (min * 1000 * 60) Duree_Execution = min & ":" & Right("00" & sec, 2) & ":" & Right("000" & ms, 3) End Function
Pour lancer une fonction depuis une autre fonction, je ne sais pas (Je n'ai pas le tps de tester) mais si tu fais ton test départ sur la ligne précédant l'appel de la fonction et arrivée sur la ligne suivant le retour de la fonction, tu as bien le temps d'exécution de la fonction...
Tout dépend du temps que tu veux mesurer, apparemment, c'est bien le temps d'exécution de la fonction...
A+
Tu as bien déclaré la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public Declare Function GetTickCount& Lib "kernel32" ()
No soucyEnvoyé par ouskel'n'or
Ca marche bien le code que tu m'a donné, j'essayais juste d'optimiser ton code.
Finalement j'ai opté pour :
Appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Public Declare Function GetTickCount& Lib "kernel32" () Public Function Duree_Execution(debut As Double, fin As Double) As String Dim duree As Double Dim min As Integer Dim sec As Integer Dim ms As Integer duree = fin - debut min = Int(duree / 1000 / 60) sec = Int((duree / 1000) - (min * 60)) ms = duree - (sec * 1000) - (min * 1000 * 60) Duree_Execution = min & ":" & Right("00" & sec, 2) & ":" & Right("000" & ms, 3) End Function
Avec g_debut et g_fin en variables globales.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 g_debut = GetTickCount& ' Fonction dont on veut mesurer le temps d'execution g_fin = GetTickCount& MsgBox Duree_Execution(g_debut, g_fin)
Faut écrire g_debut = ... , et g_fin = .... a chaque fois, mais bon vu que le passage de fonction en argument d'une fonction ne marche pas comme je le voulais, ca fera l'affaire.
Merci encore,
Avalon, c'est beau !
Si c'est résolu, un peti clic sur résolu et ce sera résolu
C'est plus que beau Avalon, c'est culte... Et la B.O. ...Envoyé par ouskel'n'or
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager