Faire un compte à rebours

Fermé
Mr_Skkay Messages postés 81 Date d'inscription lundi 24 mars 2014 Statut Membre Dernière intervention 18 octobre 2018 - 5 avril 2015 à 23:37
 Yoda - 6 avril 2015 à 10:21
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.
A voir également:

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.tick
SC = 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+
0
Mr_Skkay Messages postés 81 Date d'inscription lundi 24 mars 2014 Statut Membre Dernière intervention 18 octobre 2018 51
Modifié par Mr_Skkay le 6/04/2015 à 02:00
Ouais super ! :D

Juste pour les variables, j'avais des erreurs :
"Erreur 1 'SC' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection."
Je sais pas trop pourquoi, mais j'ai remplacé les variables par les noms des labels, et ça marche parfaitement !
Merci
0
Mr_Skkay Messages postés 81 Date d'inscription lundi 24 mars 2014 Statut Membre Dernière intervention 18 octobre 2018 51
Modifié par Mr_Skkay le 6/04/2015 à 02:12
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
0
Yoda > Mr_Skkay Messages postés 81 Date d'inscription lundi 24 mars 2014 Statut Membre Dernière intervention 18 octobre 2018
6 avril 2015 à 10:21
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+
0