Temps restant

Résolu
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007 - 22 août 2006 à 15:20
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 23 août 2006 à 11:51
Bonjour. Je cherche comment faire pour que quand je clique sur executer. Le temps choisi (Heure d'execution) disparait et apparait le temps restant . Merci

13 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 août 2006 à 10:19
Salut,
Lorsque tu dis "Cela de marche pas" pense à expliquer un peu mieux.
1- Cela plante avec une erreur VB?
2- Rien ne se passe?

Dans mon exemple je calculais le temps restant entre l'heure actuelle et 19:50:00
Mais ce matin et a cette heure ci cela donne une erreur de dépassement de capacite (= >'Attention je n'ai pas fait de traitement si il sépare + 32765 secondes)

Donc il faut faire autrement.

Comme test Place dans un nouveau projet un label => Label1 un Timer => Timer1 et un Bouton => Command1

place le code suivant dans la Form et appuie sur le bouton. (est ce que cela ne fonctionne pas )
Il y a peu etre une erreur de 1 ou 2 secondes. mais j ai fait cela vite fait.

Private TimeExecute As Date 
Private TimeLeft As Date 

Private Sub Command1_Click() 
Timer1.Interval = 1000 
Timer1.Enabled = True 
'Remplacer 19 par heure choisi dans combo
'Remplacer 50 par Minutes choisi dans combo
'Remplacer 0 par Seoncdes choisi dans combo
TimeExecute =  TimeSerial (19, 50, 0) 
End Sub 

Private Sub Timer1_Timer() 

Dim SecondesLeft As Long 
Dim HeuresRestantes As Integer 
Dim MinutesRestantes As Integer 
Dim tmpS As Integer 

'Difference en Secondes entre L'heure actuelle et TimeExecute
SecondesLeft  = DateDiff("s", Time, TimeExecute) 
'Calucl du nombre d'heure restante en fonction des secondes
HeuresRestantes =  SecondesLeft \ 3600 
'Calcul du reste des secondes
tmpS = SecondesLeft - (HeuresRestantes * 3600) 
'Calcul des minutes selon le reste des secondes
MinutesRestantes = tmpS \ 60 
'Calcul des secondes restante
SecondesLeft = tmpS - (MinutesRestantes * 60) 
'Calcul de Time Left
TimeLeft =  TimeSerial (HeuresRestantes, MinutesRestantes, SecondesLeft) 
'TimeLeft te donne alors le tezmps entre L heure actuelle et l'heure choisie
Label1.Caption  = CStr(TimeLeft) 
End Sub 
 

<small> Coloration syntaxique automatique [AFCK]</small>
       

@+, Julien
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 août 2006 à 11:44
Re,
Dans ce cas c'est TimeExecute = Format(MHeure, "hh:mm:ss")

@+, Julien
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
22 août 2006 à 15:36
Salut,

A l'aide d'un Timer (Interval 1000) tu calcule le temps entre l'heure selectionnée et l'heure actuelle

Private TimeExecute as Date
Private TimeLeft as Date

Private Sub Cmd_Execute_Click()
Timer1.Interval = 1000
Timer1.Enabled = True
TimeExecute = TimeSerial(19,50,0)
End Sub

Private Sub Timer1_Timer()
'Attention je n'ai pas fait de traitement si il sépare + 32765 secondes
TimeLeft = TimeSerial(0,0, DateDiff("s", Time, TimeExecute)
'TimeLeft te donne alors le tezmps entre L heure actuelle et l'heure choisie
End Sub

@+, Julien
0
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
23 août 2006 à 09:06
Bonjour. Et il faut creer quoi comme des objets (label...)?
Quand j'essaye de lancer comme tu a ecrit j'ai une problemme avec *TimeExecute =*
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 août 2006 à 09:25
Salut,
Les as tu déclarer comme je te le disais
'Ce sont des variable a mettre tout en haut du Form.
Private TimeExecute as Date
Private TimeLeft as Date

ce sera deux variable INTERNES au programme, a toi de creer les label que tu souhaite pour afficher en temps réel la valeur de TimeLeft

Dnas cecas NomDuLabel.Caption = Cstr(TimeLeft) dans Timer1_Timeer

@+, Julien
0
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
23 août 2006 à 09:50
J'ai mis sa au debit du Form
Private TimeExecute as Date
Private TimeLeft as Date

Puis j'ai cree une Label1 et Timer1.
Dans le Timer j'ai mi sa:
Private Sub Timer1_Timer()
'Attention je n'ai pas fait de traitement si il sépare + 32765 secondes
TimeLeft = TimeSerial(0,0, DateDiff("s", Time, TimeExecute)
'TimeLeft te donne alors le tezmps entre L heure actuelle et l'heure choisie
End Sub

et dans le code ou il faut arreter le PC j'ai mis sa:
Timer1.Interval = 1000
Timer1.Enabled = True
TimeExecute = TimeSerial(19,50,0)

Et j'ai essaye de mettre dans le Timer1_Time()
Label1.Caption = Cstr(TimeLeft)

Mais sa marche pas. Peux tu me explique car je comprend rien en VB.Merci
0
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
23 août 2006 à 10:34
En fait quand je lance le projet sa me dit l'heure actuel. Par example je vien de lancer le projet il est 10h32 sur le projet je choisi d'arreter mon pc a 17h. Donc ton code il va me compter qu'il reste 2h50min jusqu'au 19h50.
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 août 2006 à 11:00
Salut,


Chez moi avec le dernier code proposé cela me donne bien 6:00:00 (il est 11H) et je veux arreter le PC a 17 (=> TimeExecute = TimeSerial(17, 0, 0) )

La je ne comprends pas.
Si tu veux tu peux faire passer ton projet : epsylon9@gmail.com

@+, Julien
0
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
23 août 2006 à 11:21
Quand je lance le projet il me dit l'heure actuel (ex.11h). Moi par example je veux que mon pc s'arrete a 19h50. Donc il va me conter combien il reste de temps. Mais si je cree un .exe et que je lance et quand je choisira par example 16h. Il va me compter combien il reste jusqu'au 19h50 comme tu la ecrit dans le code. Moi je veux juste que dans le TimeSerial sa met l'heure que a choisi l'utilisateur.
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 août 2006 à 11:25
Re;


C est pour cela que en commentaire j ai ecrit ceci:





'Remplacer 19 par heure choisi dans combo
'Remplacer 50 par Minutes choisi dans combo


'Remplacer 0 par Seoncdes choisi dans combo
TimeExecute   TimeSerial (19, 50, 0) > je pensais que tu avais compris qu il fallait remplacer par les valeur Du Controle contenu dans la frame "Heure d'execution"




Quel est le controle que tu utilise pour la saisie de l'heure = > Peu etre n'auras tu meme pas besoin de
TimeExecute =  TimeSerial (19, 50, 0) 
Mais simplement de TimeExecute = NomDuCOntrole.Time (ou Value ou je ne sais quoi.)






@+, Julien
0
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
23 août 2006 à 11:36
ce ce projet la. http://www.vbfrance.com/code.aspx?ID=16691
0
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
23 août 2006 à 11:49
Un grand merci a toi.
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 août 2006 à 11:51
Bah de rien on est la pour ca


@Plus suir le forum






@+, Julien
0
Rejoignez-nous