Bonjour à tous,
Je suis étudiant et j'ai un petit soucis. J'ai commandé une carte avec deux relais que je souhaite piloter via VBA.
Je souhaite que l'utilisateur entre une tempo et que celle-ci active et désactive à tour de rôle mes deux relais.
J'arrive à caler une tempo qui marche mais l'utilisateur ne peut pas la choisir. En voici le programme (en rouge ma tempo) :
J'ai alors consulté l'aide de VBA et modifié ma tempo de la sorte seulement le programme plante (pas de tempo et impossible de l'arrêter) :
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
20
21
22
23
24
25
26
27
28
29
30 Private Sub Lancer_Click() Lancer.Enabled = False Arreter.Enabled = True Arret = True x = 1 Do While x < 10000000000# If (phid.OutputState(0) = False) Then phid.OutputState(0) = True Else phid.OutputState(0) = False End If Application.Wait (Now + TimeValue("00:00:02")) If (phid.OutputState(1) = False) Then phid.OutputState(1) = True Else phid.OutputState(1) = False End If If Arret = False Then phid.OutputState(0) = False phid.OutputState(1) = False Arreter.Enabled = False Lancer.Enabled = True Exit Do End If x = x + 1 DoEvents Loop End Sub
Pouvez-vous m'aider s'il vous plaît ?
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Private Sub Lancer_Click() Lancer.Enabled = False Arreter.Enabled = True newHour = Hour(Now()) newMinute = Minute(Now()) newSecond = Second(Now()) + a '(avec a=TextBox1.text pour récupérer la tempo utilisateur) WaitTime = TimeSerial(newHour, newMinute, newSecond) Arret = True x = 1 Do While x < 10000000000# If (phid.OutputState(0) = False) Then phid.OutputState(0) = True Else phid.OutputState(0) = False End If Application.Wait WaitTime If (phid.OutputState(1) = False) Then phid.OutputState(1) = True Else phid.OutputState(1) = False End If If Arret = False Then phid.OutputState(0) = False phid.OutputState(1) = False Arreter.Enabled = False Lancer.Enabled = True Exit Do End If x = x + 1 DoEvents Loop End Sub
Cordialement
Guillaume
Partager