Public Sub Conclure()
Dim T As Double, S() As String, M As Double, E As Long
QueryPerformanceCounter Top
T = (Top - TopDépart) / DTop1sec
SMin = 1: SMax = 1: Visu 1: Me.Height = 54: Me.Caption = "Tirage réussi."
Select Case T
Case Is < 10: S = Split(Format(T, "000.E+00"), "E"): E = S(1) \ 3: M = S(0) * 10 ^ S(1) * 1000 ^ -E
LabFait.Caption = Choose(1 - E, "Dénoué", "Réglé", "Aperçu") & " en " _
& M & " " & Choose(1 - E, "", "milli", "micro") & "seconde" & IIf(M > 1, "s", "") & "."
Case Is < 60: LabFait.Caption = "Dépêtré en " & Int(T * 10 + 0.5) / 10 & " seconde" & "."
Case Else: LabFait.Caption = "Achevé en " & DuréeEnClairSec(T) & "."
End Select
Terminé = True: MessageBeep vbInformation: Décharger.PlanifierDans 5
End Sub
'
Function DuréeEnClairSec(ByVal DuRest As Double) As String
Dim U As Long, DuUnit As Double, NbUnit As Long, Niv As Long, Trad As String
For U = 1 To 7
DuUnit = Choose(U, 31556952, 2629746, 604800, 86400, 3600, 60, 1)
NbUnit = Int(DuRest / DuUnit)
If NbUnit > 0 Or Niv > 0 Then Niv = Niv + 1: If Niv > 2 Then Exit Function
If NbUnit > 0 Then
Trad = NbUnit & " " & Choose(U, "an", "mois", "semaine", "jour", "heure", "minute", "seconde")
If NbUnit * Choose(U, 1, 0, 1, 1, 1, 1, 1) > 1 Then Trad = Trad & "s"
If Niv = 2 Then DuréeEnClairSec = DuréeEnClairSec & " et "
DuréeEnClairSec = DuréeEnClairSec & Trad: End If
DuRest = DuRest - DuUnit * NbUnit: Next U
End Function
End Sub