Bonjour,

Je développe un UserForm avec des notamment des boutons, je voudrais que lorsque l'utilisateur clique sur un bouton, que ça récupère un temps de chauffe associé, que le bouton passe à l'orange, puis une fois le temps écoulé, passe au vert. Ca marche bien en utilisant la fonction Timer :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub CommandButton98_Click()
'6226
Application.ScreenUpdating = False
Dim PauseTime, Start As Variant
If CommandButton98.BackColor = vert Then
CommandButton98.BackColor = rouge
Worksheets("Equipements Actifs").Cells(105, 4).Value = 0
ElseIf CommandButton98.BackColor = rouge Then
CommandButton98.BackColor = orange
Worksheets("Equipements Actifs").Cells(105, 4).Value = 1
PauseTime = value_WarmUpTWT * 60
Start = Timer
Do While Timer < Start + PauseTime
    DoEvents
Loop
CommandButton98.BackColor = vert
End If
UserForm_Click
End Sub
Seulement voilà, l'utilisateur peut cliquer sur plusieurs boutons, et donc je voudrais que chaque bouton respecte son temps de chauffe associé. Pour le moment, si je clique sur plusieurs boutons, ceux-ci passent tous au vert une fois le temps du dernier bouton cliqué terminé...

J'ai essayé en déclarant "Start" et "PauseTime" en tableau, en affectant une nouvelle dimension à chaque nouveau clique, mais ça change rien :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function TimerEqmt(PauseTime As Variant)
 
i = i + 1
 
ReDim Preserve Start(i)
ReDim Preserve WarmUpTime(i)
 
WarmUpTime(i) = PauseTime
Start(i) = Timer
Do While Timer < Start(i) + WarmUpTime(i)
    DoEvents
Loop
 
 
End Function
Avez-vous des astuces pour gérer plusieurs Timer simultanément ?

Merci