Une méthode très précise consiste à calculer le nombre de cycle d'horloge écoulé du microprocesseur via QueryPerformanceCounter

Pour convertir ensuite ce nombre de cycle en temps, on divise le nombre de cycle par la fréquence du microprocesseur (nombre de cycle par seconde).
Cette fréquence s'obtient via QueryPerformanceFrequency

Utilisation :
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
Private Declare Function QueryPerformanceCounter Lib "Kernel32" (X As Currency) As Boolean
Private Declare Function QueryPerformanceFrequency Lib "Kernel32" (X As Currency) As Boolean
 
Sub MaMacro()
Dim Debut As Currency, Fin As Currency, Freq As Currency
QueryPerformanceCounter Debut
 
'Début de code de ma procédure
'...
'...
'Fin de code de ma procédure
 
QueryPerformanceCounter Fin
QueryPerformanceFrequency Freq
MsgBox "Durée de la procédure = " & Format(((Fin - Debut) / Freq), "0.00") & " sec."
End Sub
Dans cet exemple, l'affichage du temps écoulé est volontairement limité au centième de seconde. Si vous souhaitez encore une plus grande précision, vous pouvez afficher le résultat jusqu'à la nanoseconde (milliardième de seconde).