En VBS comment convertir x minutes sous la forme j/h/mn

[Résolu]
Signaler
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
Bonsoir,

Via, une InputBox, j'essaie de comparer 2 dates (jj/mm/aaaa - jj/mm/aaaa).
Ayant la différence en minutes, je n'arrive pas à transfert ce chiffre en mn/hh/jj

Merci pour vos conseils.
Ci-dessous mon début de code:

Dim WshShell, Saisie, DateEntree, DateSortie, Signe, Result, Diff
Set WshShell = WScript.CreateObject("WScript.Shell")
Saisie = InputBox(vbCrLf&vbCrLf&vbCrLf&vbCrLf&"Saisir votre date sous la forme:"&vbCrLf&vbCrLf&_
"jj/mm/aaaa hh:mm - jj/mm/aaaa hh:mm"&vbCrLf&vbCrLf&"ou"&vbCrLf&"jj/mm/aaaa hh:mm + jj/mm/aaaa hh:mm"_
, "Calcul d'intervalle de temps en minutes", Left(Now, 16) & " - " & Left(Now, 11) & " 00:00")


DateEntree = Mid(Saisie, 1, 16) & ":00"
DateSortie = Mid(Saisie, 20, 17) & ":00"
Signe = Mid(Saisie, 18, 1)
'MsgBox DateSortie & " " & DateEntree
'msgbox DateDiff("n", DateSortie, DateEntree)
n = DateDiff("n" , DateSortie, DateEntree)


If n =0 Then
MsgBox "Les dates à comparer sont identhiques"
InputBox Saisie , "Calcul d'intervalle de temps en minutes", Left(Now, 16) &_
" - " & Left(Now, 11) & " 00:00"', Left(Now, 16) & " - " & Left(Now, 11) & " 00:00", "Calcul d'intervalle de temps en minutes", Left(Now, 16) & " - " & Left(Now, 11) & " 00:00"
Else
MsgBox n & " minutes"
'pour test InputBox Saisie , "Calcul d'intervalle de temps en minutes", Left(Now, 16) & " - " & Left(Now, 11) & " 00:00"', Left(Now, 16) & " - " & Left(Now, 11) & " 00:00", "Calcul d'intervalle de temps en minutes", Left(Now, 16) & " - " & Left(Now, 11) & " 00:00"
End If
'MsgBox DateSortie & " " & DateEntree
'MsgBox DateDiff("n", DateSortie, DateEntree)
'MsgBox "entree: " & Mid(Saisie, 7, 4) & " sortie: " & Mid(Saisie, 26, 4)


y = DateDiff("yyyy", DateSortie, DateEntree)
m = DateDiff("m", DateSortie, DateEntree)
y = DateDiff("y", DateSortie, DateEntree)
h = DateDiff("h", DateSortie, DateEntree)
n = DateDiff("n", DateSortie, DateEntree)
'MsgBox "nbre minutes:" & n

'Conversion de x minutes en j/h/mn
If Right(n, 2) >= 60 Then
Result_n = Right(n, 2) - 60
MsgBox "test0 " & Result_n & " minutes" 'faux
Else
If Len(Result_n) = 1 Then
Result_n = "test1 " & "0" & Result_n & " minutes"
Else
Result_n = "test2 " & Result_n
End If
End If
Diff = "La différence entre les 2 dates est : " & Result_n & " minutes" ' faux
MsgBox Diff

Set WshShell = Nothing
WScript.Quit

1 réponse

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
Bonsoir,
merci jean-marc

Dim WshShell, Saisie, DateEntree, DateSortie, Signe, Msg, n, hh, mn, result, s
Set WshShell = WScript.CreateObject("WScript.Shell")


Saisie = InputBox(vbCrLf&vbCrLf&vbCrLf&vbCrLf&"Saisir votre date sous la forme:"_
&vbCrLf&vbCrLf&"jj/mm/aaaa hh:mm - jj/mm/aaaa hh:mm"&vbCrLf&"Remplacer les 5 derniers caractères hh:mm",_
"Calcul d'intervalle de temps en minutes", Left(Now, 16) & " - " & Left(Now, 10) & " 00:00")


DateEntree = Mid(Saisie, 1, 16) & ":00"
DateSortie = Mid(Saisie, 20, 16) & ":00"
Signe = Mid(Saisie, 18, 1)


' y = DateDiff("yyyy", DateSortie, DateEntree) ' aaaa
' m = DateDiff("m", DateSortie, DateEntree) ' mm
' d = DateDiff("y", DateSortie, DateEntree) ' jj
' h = DateDiff("h", DateSortie, DateEntree) ' hh
' n = DateDiff("n", DateSortie, DateEntree) ' mn
' s = DateDiff("s", DateSortie, DateEntree) ' ss


n = DateDiff("n" , DateSortie, DateEntree)


Temps = n * 60
hh = Temps / 3600
mn = (hh - Fix(hh)) * 60
Conversion = Int(hh) & " h " & Int(mn) & " mn"
Msg = "Comparaison de dates du " & DateSortie & " au " & DateEntree &vbCrLf&vbCrLf
Msg = Msg & "La différence entre les 2 dates est : " &vbCrLf&vbCrLMsg Msg & "Nombre total en minutes " & n &vbCrLf&vbCrLf
MsgBox s & " " & Msg &vbCrLf& " soit: " & Conversion



Msg = "Comparaison de dates du " & DateSortie & " au " & DateEntree &vbCrLf&vbCrLf
Msg = Msg & "La différence entre les 2 dates est : " &vbCrLf&vbCrL Msg Msg & "Nombre total en minutes " & n &vbCrLf&vbCrLf Msg Msg & "Nombre de jours " & DateDiff("y", DateEntree, DateSortie) &vbCrLf&vbCrLf Msg Msg & "Nombre de heures " & Fix(hh)&vbCrLf&vbCrLf Msg Msg & "Nombre de minutes " & Fix(mn)
MsgBox Msg '& "La différence entre les 2 dates est : " &vbCrLf&vbCrLf& Msg


Set WshShell = Nothing
WScript.Quit
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci