Afficher des minutes en secondes

Résolu/Fermé
dhr.france Messages postés 6 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 7 mai 2017 - Modifié le 6 mai 2017 à 17:40
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 7 mai 2017 à 12:59
Bonjour à tous,

J'adore chercher et j'adore trouver
(surtout compte tenu de mon petit niveau en programmation)
Cependant, là, je plante et je tourne en rond...

J'ai un timer qui m'affiche dans un label un temps en minutes et en secondes
J'aimerais qu'il le fasse uniquement en secondes
(ex : je voudrais qu'il affiche 75 secondes pour au lieu de 1:15)

Ci-après, le code de mon module timer

Merci d'avance si l'un d'entre vous peut me venir en aide.

Bonne fin de journée à vous,

Dominique


Option Explicit

Private Declare Function SetTimer Lib "User32" (ByVal hWnd As Long, _
            ByVal nIDEvent As Long, ByVal uElapse As Long, _
            ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "User32" (ByVal hWnd As Long, _
            ByVal nIDEvent As Long) As Long

Dim TimerID As Long
Public GoTimer As Single, CumulTimer As Single

Sub TimerOff()
    'Timer désactivé
    KillTimer 0, TimerID
End Sub

Sub TimerOn(IntervalT As Long)
    'Timer actif
    TimerID = SetTimer(0, 0, IntervalT, AddressOf Chrono)
End Sub

Sub Chrono()
Dim T As String
Dim h As Single
    'MAJ de l'afficheur Chrono
    h = Round(CumulTimer + (Timer - GoTimer), 2)
    T = Format(TimeSerial(0, 0, h), "nn:ss")
    With UserForm1
        If Not .chk10em.Value Then  'Affichage centième
            T = T & "." & Format(Int((h - Int(h)) * 100), "00")
        End If
        .Chrono.Caption = T
    End With
End Sub



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.


2 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
7 mai 2017 à 10:29
Bonjour dhr, bonjour le forum,

Sans avoir pris le temps de regarder ton code... Peut-être comme ça :

T = CInt(Split(T, ":")(0)) * 60 + CInt(Split(T, ":")(1))


0
dhr.france Messages postés 6 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 7 mai 2017
7 mai 2017 à 11:48
Bonjour ThauTheme,
J'espère que tu vas bien en ce dimanche matin;
Merci pour ta réponse.
Malheureusement cela ne fonctionne pas.
J'ai appliqué la solution de vg_be qui répond complètement à ma demande.
Bonne journée,
Dominique
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160 > dhr.france Messages postés 6 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 7 mai 2017
7 mai 2017 à 12:59
Bonjour Dominique,

J'espère surtout que ça ira mieux ce soir !...
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
7 mai 2017 à 11:12
bonjour, suggestion:
remplacer
T = Format(TimeSerial(0, 0, h), "nn:ss")

par
    T = cstr(Int(h))
0
dhr.france Messages postés 6 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 7 mai 2017
7 mai 2017 à 11:50
Bonjour yg_be,
Mille merci pour ta réponse :
Cela fonctionne parfaitement.
Bonne journée,
Dominique.
0