Private Sub CommandButton1_Click() 'Vider le buffer MSComm1.InBufferCount = 0 'Numéro port série MSComm1.CommPort = 1 'Vitesse, parité, nb bits MSComm1.Settings = "1200,e,7,1" 'ouvre le port MSComm1.PortOpen = True 'Lecture de la trame Dim Reponse As Variant, Msg$ On Error Resume Next: Err.Clear Do: If Err Then Exit Do MSComm1.InputLen = 15 Msg$ = Msg$ & MSComm1.Input Reponse = MsgBox("Appuyer sur le bouton PRINT de la balance et cliquer sur OK" & vbCrLf & Msg$, vbOKCancel, "Annuler pour quitter") If Reponse <> vbOK Then Exit Do Loop 'Traitement de la pesée If (Msg$ <> "") Then 'Affichage dans l'userform Label1.Caption = Msg$ 'Lecture à partir du 8ème bit Msg$ = Mid(Msg$, 8) 'Lecture de 6 bits Msg$ = Left(Msg$, 6) 'Ecriture du poids dans la cellule active ActiveCell.Value = Msg$ End If 'ferme le port MSComm1.PortOpen = False End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub CommandButton1_Click() MSComm1.InBufferCount = 0 'vide buffer MSComm1.CommPort = 1 'No port série MSComm1.Settings = "1200,e,7,1" 'vitesse, parité, nb bits MSComm1.PortOpen = True 'ouvre le port 'Lecture de la trame Dim Reponse As Variant, Msg$, Pds$ On Error Resume Next: Err.Clear Do Reponse = MsgBox("Appuyer sur le bouton PRINT de la balance et cliquer sur OK" & vbCrLf & Msg$, vbOKCancel, "Annuler pour quitter") If Reponse <> vbOK Then Exit Do MSComm1.InputLen = 17 Msg$ = MSComm1.Input: If Err Then Exit Do T! = Timer: While Abs(Timer - T) < 0.2: DoEvents: Wend 'delay Pds$ = Mid(Msg$, 8, 6) ActiveCell.Value = Pds$ 'colle le poids dans la cellule active ActiveCell.Offset(1, 0).Activate 'cellule suivante Loop 'Affichage dans l'userform et ferme le port If Msg$ > "" Then Label1.Caption = Pds$ MSComm1.PortOpen = False End Sub