Date et heure Temps écoulé, chrono

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, @+
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
 

Statistiques des forums

Discussions
315 093
Messages
2 116 125
Membres
112 666
dernier inscrit
Coco0505