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 35 36 37 38 39
| Sub CommandButton1_Click()
Dim PauseTime, Start
Dim Cel As Range
If (MsgBox("Cliquez sur Oui pour lancer les 18 pesées", 4)) = vbYes Then
PauseTime = 2 ' Définit la durée.
Set Cel = ActiveCell
For i = 1 To 18
Start = Timer ' Définit l'heure de début.
Do While Timer < Start + PauseTime
DoEvents ' Donne le contrôle à d'autres processus.
Loop
Peser Cel
Set Cel = Cel.Offset(1, 0)
Next i
Else
End
End If
End Sub
Private Sub Peser(C As Range)
'Vider le buffer
MSComm1.InBufferCount = 0
'Choisir un port série
MSComm1.CommPort = 1 '1 est le n° de port
'Paramétrage du port; les valeurs sont fournies par le constructeur de l'appareil.
'les valeurs :bauds, parité, bits de données, bit d'arrêt
MSComm1.Settings = "9600,n,8,1"
'Ouvre le port
MSComm1.PortOpen = True
'Lecture de la trame
Dim Reponse As Variant, Msg$, Pds$
On Error Resume Next: Err.Clear
MSComm1.InputLen = 20
Msg$ = MSComm1.Input: If Err Then Exit Do
T! = Timer: While Abs(Timer - T) < 0.3: DoEvents: Wend 'delay
Pds$ = Mid(Msg$, 11, 4)
C.Value = Pds$ 'colle le poids dans la cellule active
'Ferme le port
MSComm1.PortOpen = False
End Sub |
Partager