Faire un compte à rebours
Mr_Skkay
Messages postés
81
Date d'inscription
Statut
Membre
Dernière intervention
-
Yoda -
Yoda -
Salut, j'aimerai faire un compte à rebours en Visual Basic, j'ai réussi à en faire un mais pas comme je veux :
Le miens décompte seulement les secondes, c'est à dire que j'entre "x" secondes, puis il fait -1, jusqu'à 0.
Ce que j'aimerai faire, c'est un compte à rebours comme ça :
J'entre "x" heures, "x" minutes, "x" secondes, et qu'il me disent combien d'heures, minutes, secondes il me reste. Mais je ne vois pas trop comment faire... :/
Pour ceux qui sont là parce qu'il recherche comment en faire un qui décompte que les secondes, moi j'ai fait :
Une textBox1 : "j'écris le nbre de secondes"
Un bouton : "je mets le texte de la textBox dans le label1"
-> Label1.Text = TextBox1.Text
Un bouton : "qui démarre le timer"
-> Timer1.Enabled = True
Le timer (avec 1000ms d'intervalle), et dedans je mets :
-> Label1.Text = Label1.Text - 1
If Label1.Text = 0 Then
Timer1.Stop()
End If
Voilà.
Désoler je ne sais pas si il y a, et comment utiliser la balise pour le code.
Le miens décompte seulement les secondes, c'est à dire que j'entre "x" secondes, puis il fait -1, jusqu'à 0.
Ce que j'aimerai faire, c'est un compte à rebours comme ça :
J'entre "x" heures, "x" minutes, "x" secondes, et qu'il me disent combien d'heures, minutes, secondes il me reste. Mais je ne vois pas trop comment faire... :/
Pour ceux qui sont là parce qu'il recherche comment en faire un qui décompte que les secondes, moi j'ai fait :
Une textBox1 : "j'écris le nbre de secondes"
Un bouton : "je mets le texte de la textBox dans le label1"
-> Label1.Text = TextBox1.Text
Un bouton : "qui démarre le timer"
-> Timer1.Enabled = True
Le timer (avec 1000ms d'intervalle), et dedans je mets :
-> Label1.Text = Label1.Text - 1
If Label1.Text = 0 Then
Timer1.Stop()
End If
Voilà.
Désoler je ne sais pas si il y a, et comment utiliser la balise pour le code.
1 réponse
-
Salut,
Pour réaliser ton compte à rebours, il suffit de gérer les heures minutes et secondes.
'Variables globales
Dim HR As Integer, MN As Integer, SC As Integer
'Initialisation
HR = Val(heures.Text): MN = Val(minutes.Text): SC = Val(secondes.Text)
dans la procedure timer.tickSC = SC - 1
If SC = -1 Then
SC = 59
MN = MN - 1
End If
If MN = -1 Then
MN = 59
HR = HR - 1
End If
'affichage dans les labels
lb_HR.Caption = Format(HR, "00")
lb_MN.Caption = Format(MN, "00")
lb_SC.Caption = Format(SC, "00")
'verifier sil le decompte est terminé
If HR = 0 And MN = 0 And SC = 0 Then
'arreter le timer
Timer1.Stop
MsgBox "Temps écoulé"
End If
End Sub
A+-
-
Et au passage, c'est possible, si oui comment, d'autoriser seulement l'écriture des chiffres dans des textBoxs ?
Edit : Sinon utilisez des NumericUpDown ! Ils sont même mieux :p- Salut,
Pour l'erreur d'accès aux variables, il faut déclarer les variables globales dans un module (et non dans l'UserForm) afin quelles soient "visibles" dans tout le projet.
En ce qui concerne la saisie des nombres dans un textbox, il faut gérer l'évènement Keypressed.
Mais à ton niveau, il vaut mieux contrôler le contenu des textbox après saisie; par exemple pour les minutes:If Val(minutes.Text) < 0 Or Val(minutes.Text) > 59 Then
MsgBox "Saisissez un nombre compris entre 0 et 59"
minutes.SetFocus
Exit Sub
End If
A+
-