Conversion d'une durée en secondes au format hh:mm:ss (sans format())

Contenu du snippet

Il suffit de saisir une durée en seconde et hop!
Gestion de l'affichage d'un 0 si les secondes ou les minutes sont < 10

Source / Exemple :


Function CalcDuree(TpsSec As Long) As String

Dim DurHeur As Long
Dim DurMin As Long
Dim DurSec As Long

'Saisie du temps en secondes
tps = InputBox("entrer un nombre de secondes")

'Détermine les heures
DurHeur = Round(TpsSec / 3600)
If (TpsSec Mod 3600) >= 1800 Then
    DurHeur = DurHeur - 1
End If

'Détermine les minutes
DurMin = Round(TpsSec / 60) - DurHeur * 60
If (TpsSec Mod 60) >= 30 Then
    DurMin = DurMin - 1
End If

'Détermine les secondes
DurSec = TpsSec - DurMin * 60 - DurHeur * 3600

'Ajoute un 0 devant les secondes et les minutes inférieures à 10
If (DurMin < 10 And DurSec < 10) Then
    CalcDuree = DurHeur & ":0" & DurMin & ":0" & DurSec
ElseIf (DurMin >= 10 And DurSec < 10) Then
    CalcDuree = DurHeur & ":" & DurMin & ":0" & DurSec
ElseIf (DurMin < 10 And DurSec >= 10) Then
    CalcDuree = DurHeur & ":0" & DurMin & ":" & DurSec
Else
    CalcDuree = DurHeur & ":" & DurMin & ":" & DurSec
End If

'Affichage du résultat
MsgBox "Durée = " & CalcDuree

End Function

Conclusion :


Fonctionne pour tous les cas de figure dans la limite du raisonnable!!!

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.