cocowz
Messages postés89Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention25 février 2007
-
22 août 2006 à 15:20
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDerniè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
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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
cocowz
Messages postés89Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention25 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
cocowz
Messages postés89Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention25 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.
cocowz
Messages postés89Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention25 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.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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.)