PCPT
Messages postés13278Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 7 sept. 2006 à 22:13
salut,
Mortalino -> "timer" = nom utilisé ici pour simuler mais en effet ce n'est pas un contrôle
Achi -> essaye comme çà :
'DANS TON MODULE
Public Timer1 As Boolean
Public Timer2 As Boolean
'
Public Sub Timer1_Timer()
Dim Start As Long
If Worksheets(1).CommandButton3.ForeColor = &HFF& Then
Start = Timer ' Définit l'heure de début.
Do While Timer < Start + 0.5
DoEvents ' Donne le contrôle à d'autres processus.
If Worksheets(1).CommandButton3.ForeColor = &HFF& Then Worksheets(1).CommandButton3.Caption = ""
If Not Timer1 Then Exit Do
Loop
Timer2 = True
Call Timer2_Timer
End If
Timer1 = False
End Sub
'
Public Sub Timer2_Timer()
Dim Start As Long
If Worksheets(1).CommandButton3.ForeColor = &HFF& Then
Start = Timer ' Définit l'heure de début.
Do While Timer < Start + 0.5
DoEvents ' Donne le contrôle à d'autres processus.
Worksheets(1).CommandButton3.Caption = "Annulation"
If Not Timer2 Then Exit Do
Loop
Timer1 = True
Call Timer1_Timer
End If
Timer2 = False
End Sub
'DANS TON USERFORM OU WORKSHEET OU J'SAIS PAS TROP QUOI ^^
'
Private Sub CommandButton1_Click()
Worksheets(1).CommandButton3.ForeColor = &HFF&
Timer1 = True
Call Timer1_Timer
End Sub
'
Private Sub CommandButton3_Click()
Timer1 = False
Timer2 = False
Worksheets(1).CommandButton3.ForeColor = &H0&
Worksheets(1).CommandButton3.Caption = "Annulation"
End Sub
cs_Achi
Messages postés128Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention17 mai 2008 7 sept. 2006 à 17:12
salut Mortalino,
alors en fait lorsque j'appui sur un bouton je commande 2 timer (en VBA):
Private Sub CommandButton1_Click()
Timer1_Timer
End Sub
ds un module :
Public Sub Timer1_Timer()
Dim Start
Start = Timer ' Définit l'heure de début.
Do While Timer < Start + 0.5
DoEvents ' Donne le contrôle à d'autres processus.
Worksheets(1).CommandButton3.Caption = ""
Loop
Timer2_Timer
End Sub
Public Sub Timer2_Timer()
Dim Start
Start = Timer ' Définit l'heure de début.
Do While Timer < Start + 0.5
DoEvents ' Donne le contrôle à d'autres processus.
Worksheets(1).CommandButton3.ForeColor = &HFF&
Worksheets(1).CommandButton3.Caption = "Annulation"
Loop
Timer1_Timer
End Sub
puis enfin lorque j'appui sur un 2ème bouton je veux arrêter mes timer!
Private Sub CommandButton3_Click()
Timer1.interval = 0
Worksheets(1).CommandButton3.ForeColor = &H0&
Worksheets(1).CommandButton3.Caption = "Annulation"
End Sub
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 7 sept. 2006 à 17:33
Un timer, en VB6, c'est un contrôle que tu es obligé de positionner sur une Form, sinon, il faut passer par des APIs.
Je conçois que tu puisses importer ce contrôle dans dans ton projet vba, mais j'ai du mal à imaginer son utilisation dans un module.
Désolé de ne pas vraiment comprendre, as tu plus de précisions à ce sujet stp. merci
@++
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 7 sept. 2006 à 22:21
Je ne savais pas qu"en VBA
Sub Timer1_Timer() fonctionnait comme ceci sans placer le "contrôle", que l"on place sur une Form en VB6.
J"essaierai à l"occasion
@++
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
PCPT
Messages postés13278Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 7 sept. 2006 à 22:26
c'est pas qu'il fonctionne ou non, la procédure porte le nom que tu veux.....
et là le code n'a rien à voir avec un vrai timer puisqu'il ne sera pas réellement fiable ni identique sur chaque PC. mais l'idée n'est pas mauvaise ^^
++
Prenez un instant pour répondre à ce sondage svp
PCPT
Messages postés13278Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 8 sept. 2006 à 08:55
salut,
umm... tu peux tenter de faire un timer par API, dans quel cas je suis certain que notre ami Mortalino se fera une joie de t'orienter cet après-midi ^^
sinon regarde dans les 20 dernières sources, il y a un timer VB6 utilisable en VBA. reste à voir si tu peux (contexte que nous n'avons pas) ajouter cet ocx...
je ne vois même pas ce que tu veux vraiment faire avec ton code....
écrire en boucle un label dans un bouton... çà me dépasse ^^
++
Prenez un instant pour répondre à ce sondage svp
cs_Achi
Messages postés128Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention17 mai 2008 8 sept. 2006 à 09:09
salut,
ok je vais voir tout çà!
sinon mon application vous parait peut etre bizarre mais étant novice en prog je fais avec les moyens du bord .
l'intérêt était juste de faire clignoter le caption de mon bouton...
bon c'est vrai que ds le code que je vous ai filé j'avais allègé pour ne mettre juste ce qui m'intéressais... en fait je filtre un tableau excel en parallèle selon divers critères et le code que vous m'avez filé me sert juste à préciser que le filtre est encore actif tant que le bouton clignote... voilivoilou c'est tt simple.... peut etre un peu complexe pour ce que c'est, j'en conviens mais petit programmeur deviendra grand.... un jour.... bientôt.... enfin j'espère, !!!
cs_bipou
Messages postés61Date d'inscriptionmercredi 14 janvier 2004StatutMembreDernière intervention14 septembre 2006 7 sept. 2006 à 17:35
Bonjour,
je ne trouve pas cela très "clean" car par ce code tu rempli la pile de ta succession de procédure...
mais si tu insistes ceci fonctionne :
Public Sub Timer1_Timer()
If Worksheets(1).CommandButton3.ForeColor = &HFF& Then
Dim Start
Start = Timer ' Définit l'heure de début.
Do While Timer < Start + 0.5
DoEvents ' Donne le contrôle à d'autres processus. If Worksheets(1).CommandButton3.ForeColor &HFF& Then Worksheets(1).CommandButton3.Caption ""
Loop
Timer2_Timer
End If
End Sub
Public Sub Timer2_Timer()
If Worksheets(1).CommandButton3.ForeColor = &HFF& Then
Dim Start
Start = Timer ' Définit l'heure de début.
Do While Timer < Start + 0.5
DoEvents ' Donne le contrôle à d'autres processus.
Worksheets(1).CommandButton3.Caption = "Annulation"
Loop
Timer1_Timer
End If
End Sub
Private Sub CommandButton1_Click()
Worksheets(1).CommandButton3.ForeColor = &HFF&
Timer1_Timer
End Sub
Private Sub CommandButton3_Click()
Worksheets(1).CommandButton3.ForeColor = &H0&
Worksheets(1).CommandButton3.Caption = "Annulation"
End Sub