cs_akzo
Messages postés133Date d'inscriptiondimanche 23 juin 2002StatutMembreDernière intervention 3 janvier 20153 15 déc. 2004 à 00:23
voila ce que j'ai deja utiliser si cela peux servir a d'autre
text1=resultat de la conversion
Seconde = ' a entre de la maniere que vous voulez
DefHeure = Seconde
Cal = DefHeure / 60
Minute = Fix(Cal)
Seconde = Fix((DefHeure - Minute * 60))
If Minute > 59 Then
Heure = Fix(Minute / 60)
Minute = Fix((Minute - Heure * 60))
End If
If DefHeure >= 86400 Then
Jour = Fix(DefHeure / 86400)
Text1 = Format(Jour, "00") & " J " & Format(Heure - (Jour * 24), "00") & " H " & Format(Minute, "00") & " Min " & Format(Seconde, "00") & " s"
Else
If DefHeure >= 3600 Then
Text1 = Format(Heure, "00") & " H " & Format(Minute, "00") & " Min " & Format(Seconde, "00") & " s"
Else
If DefHeure >= 60 Then
Text7 = Format(Minute, "00") & " Min " & Format(Seconde, "00") & " s"
Else
Text7 = Format(Seconde, "00") & " s"
End If
End If
End If
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 9 déc. 2004 à 19:28
JoePatent> ça va de soit ;)
JoePatent
Messages postés171Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention20 juillet 2008 9 déc. 2004 à 17:48
Une autre methode est de prendre le tout a l'envers et d'eliminer tous les IF
Dim tpssec As Long
Dim secondes As Long
Dim minutes As Long
Dim heures As Long
tpssec = 90 ' On met un nombre x de secondes - fin de test
secondes = tpssec Mod 60 ' On determine le nombre de secondes
tpssec = tpssec - secondes ' on eneleve le nombre de secondes de la duree
tpssec = tpssec / 60 ' On convertit le tout en minute
minutes = tpssec Mod 60 ' on determine le nombre de minutes
tpssec = tpssec - minutes ' On enleve le nombre de minutes de la duree
tpssec = tpssec / 60 ' On convertit le tout en heure
heures = tpssec Mod 60 ' On determine le nombre d'heure
Ainsi, il n'y a pas besoin de s'amuser à vérifier s'il y a moins de 10 minutes ou 10 secondes.
phantom_2005
Messages postés184Date d'inscriptionmercredi 8 décembre 2004StatutMembreDernière intervention 1 septembre 20101 9 déc. 2004 à 13:20
Cette fonction ne comportait pas de InputBox à la base.
Ni de MsgBox d'ailleurs!
Ces 2 objets sont utilisés pour envoyer (et afficher) le résultat à (de) la fonction.
Pour les autres remarques je vais m'en servir.
Merci pour le commentaire!
@+
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 9 déc. 2004 à 12:48
Pourquoi faire une InputBox, et ne pas se servir de la donnée saisie (le nombre de secondes est un argument de ta fonction)
de même, ôte la MsgBox de ta fonction, elle est inexploitable en l'etat.
pour le formattage en sortie, tu peux faire par exemple :
15 déc. 2004 à 00:23
text1=resultat de la conversion
Seconde = ' a entre de la maniere que vous voulez
DefHeure = Seconde
Cal = DefHeure / 60
Minute = Fix(Cal)
Seconde = Fix((DefHeure - Minute * 60))
If Minute > 59 Then
Heure = Fix(Minute / 60)
Minute = Fix((Minute - Heure * 60))
End If
If DefHeure >= 86400 Then
Jour = Fix(DefHeure / 86400)
Text1 = Format(Jour, "00") & " J " & Format(Heure - (Jour * 24), "00") & " H " & Format(Minute, "00") & " Min " & Format(Seconde, "00") & " s"
Else
If DefHeure >= 3600 Then
Text1 = Format(Heure, "00") & " H " & Format(Minute, "00") & " Min " & Format(Seconde, "00") & " s"
Else
If DefHeure >= 60 Then
Text7 = Format(Minute, "00") & " Min " & Format(Seconde, "00") & " s"
Else
Text7 = Format(Seconde, "00") & " s"
End If
End If
End If
9 déc. 2004 à 19:28
9 déc. 2004 à 17:48
Dim tpssec As Long
Dim secondes As Long
Dim minutes As Long
Dim heures As Long
tpssec = 90 ' On met un nombre x de secondes - fin de test
secondes = tpssec Mod 60 ' On determine le nombre de secondes
tpssec = tpssec - secondes ' on eneleve le nombre de secondes de la duree
tpssec = tpssec / 60 ' On convertit le tout en minute
minutes = tpssec Mod 60 ' on determine le nombre de minutes
tpssec = tpssec - minutes ' On enleve le nombre de minutes de la duree
tpssec = tpssec / 60 ' On convertit le tout en heure
heures = tpssec Mod 60 ' On determine le nombre d'heure
MsgBox heures & ":" & Format(minutes, "00") & ":" & Format(secondes, "00")
9 déc. 2004 à 17:23
Format serait tout de même bien utile ici...
9 déc. 2004 à 15:09
Personnellement, je préfère procéder à la mise en forme "00" de la manière suivante :
CalcDuree = DurHeur & ":" & Format(DurMin,"00)" & ":" & Format(DurSec,"00")
Ainsi, il n'y a pas besoin de s'amuser à vérifier s'il y a moins de 10 minutes ou 10 secondes.
9 déc. 2004 à 13:20
Ni de MsgBox d'ailleurs!
Ces 2 objets sont utilisés pour envoyer (et afficher) le résultat à (de) la fonction.
Pour les autres remarques je vais m'en servir.
Merci pour le commentaire!
@+
9 déc. 2004 à 12:48
de même, ôte la MsgBox de ta fonction, elle est inexploitable en l'etat.
pour le formattage en sortie, tu peux faire par exemple :
CalcDuree = IIf(DurHeur < 10, "0", "") & DurHeur & ":"
CalcDuree = CalcDuree & IIf(DurMin < 10, "0", "") & DurMin & ":"
CalcDuree = CalcDuree & IIf(DurSec < 10, "0", "") & DurSec & ":"
plutot que round, utilises la division entière :
TpsSec \ 3600 au lieu de Round(TpsSec / 3600)