Bonjour
Voici une fonction affichant le temps écoulé en heures, minutes, secondes, centièmes depuis la mise à jour d'une variable publique Heu_Deb, nécessite une deuxième variable Heu_Cal s'il y a nécessité de gérer des interruptions, notamment pendant des interactions utilisateur. Cette fonction est aussi pratique pour comparer facilement la rapidité d'exécution de deux codes différents.
Fonctionne pour vba uniquement
Bien cordialement, @+
Voici une fonction affichant le temps écoulé en heures, minutes, secondes, centièmes depuis la mise à jour d'une variable publique Heu_Deb, nécessite une deuxième variable Heu_Cal s'il y a nécessité de gérer des interruptions, notamment pendant des interactions utilisateur. Cette fonction est aussi pratique pour comparer facilement la rapidité d'exécution de deux codes différents.
Fonctionne pour vba uniquement
Bien cordialement, @+
Code:
Public Heu_Deb#
Public Heu_Cal#
Function Temps_Ecoule$()
'Fonction Temps_Ecoule V1.0 By Bernard_XLD, Excel toutes versions (non testé sur Mac)
'reporte le temps écoulé pendant l'exécution d'un code
'pour démarrer un décompte de temps, inscrire dans le code de la procédure "Heu_Deb = Timer"
'pour soustraire une interruption dans une exécution de code (validation utilisateur, etc), mettre avant l'interruption : "Heu_Cal=Timer" et après l'interruption : "Heu_Deb = Heu_Deb + (Timer - Heu_Cal)"
'l'appel de la fonction sans paramètre donnera le temps écoulé entre Heu_Deb et Heu_Fin, Msgbox "Temps écoulé : " & Temps_Ecoule
Dim Heu_Fin#
Dim Temps_Exe(1 To 4) As Integer
Heu_Fin = Timer - Heu_Deb
If Heu_Fin < 0 Then Heu_Fin = Heu_Fin + 86400
Temps_Exe(1) = Fix(Heu_Fin / 3600)
Temps_Exe(2) = Fix((Heu_Fin - (Temps_Exe(1) * 3600)) / 60)
Temps_Exe(3) = Fix(Heu_Fin - ((Temps_Exe(1) * 3600) + (Temps_Exe(2) * 60)))
Temps_Exe(4) = CInt((Heu_Fin - Fix(Heu_Fin)) * 100)
If Temps_Exe(1) = 0 Then
If Temps_Exe(2) = 0 Then
If Temps_Exe(3) = 0 Then
Temps_Ecoule = Right("0" & Temps_Exe(4), 2) & " centièmes"
Else
Temps_Ecoule = Right("0" & Temps_Exe(3), 2) & " secondes, " & Right("0" & Temps_Exe(4), 2) & " centièmes"
End If
Else
Temps_Ecoule = Right("0" & Temps_Exe(2), 2) & " minutes, " & Right("0" & Temps_Exe(3), 2) & " secondes, " & Right("0" & Temps_Exe(4), 2) & " centièmes"
End If
Else
Temps_Ecoule = Right("0" & Temps_Exe(1), 2) & " heures, " & Right("0" & Temps_Exe(2), 2) & " minutes, " & Right("0" & Temps_Exe(3), 2) & " secondes, " & Right("0" & Temps_Exe(4), 2) & " centièmes"
End If
End Function