N'étant pas ingénieur informatichien, je vais essayer de t'expliquer le fonctionnement comme moi je le comprend, si je dis une trop grosse boulette ya bien quelqu'un qui me reprendra.

QueryPerformanceCounter ne compte pas les secondes écoulées mais le nombre de cycle d'horloge écoulé de ton microprocesseur.
QueryPerformanceFrequency donne le nombre de cycle d'horloge pour une seconde.
Donc entre QueryPerformanceCounter Debut et Fin on a un nombre de cycle que l'on divise par QueryPerformanceFrequency pour convertir ce nombre en secondes.

Si je comprend bien tu souhaites calculer les temps d'utilisation cumulés de la macro.
Une solution éventuelle en déclarant une variable de type Public
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Declare Function QueryPerformanceCounter Lib "Kernel32" (X As Currency) As Boolean
Private Declare Function QueryPerformanceFrequency Lib "Kernel32" (X As Currency) As Boolean
Public Tproc As Date
 
Sub TaMacro()
Dim Debut As Currency, Fin As Currency, Freq As Currency
QueryPerformanceCounter Debut
'...
'ton code
'...
QueryPerformanceCounter Fin
QueryPerformanceFrequency Freq
Tproc = Tproc + ((Fin - Debut) / Freq)
End Sub
Avant la fermeture du classeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Temps d'utilisation de la procédure = " & Format(Tproc, "00:00:00.00")
End Sub