Bonjour
je suis bloquer sur l'acquisition de mesure d'une balance sur vba
voila j'ai réussie a mettre le mscomm sur le userform grace a se forum et aux opération de registre que j'ai effectuer , maintenant j'ai fait un petit programme qui permet de faire l'acquisition mais un message d'erreur s'affiche (Erreur 8005 . "port already open" a la ligne MSComm1.PortOpen = True en sachant que j'utilise windows 7 ,balance - 9600bauds,8bits de données,pas bit de parité,1 bit de stop ,
j'ai utiliser hyperterminal pour tester le port com1 en reliant la sortie et l'entrée (txd,rxd) par un trombone la communication est efficace
donc le problème est il :
dans l’appareille de mesure ou liaison rs232 non croiser ?
version mscomm32.ocx qui n'est pas bonne ?
le pilote port serie ?
le code effectuer ?
Merci de vouloir m'eclairsire la situation
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
35
36
37
38 Private Sub CommandButton1_Click() 'Vider le buffer MSComm1.InBufferCount = 0 'Numéro port série MSComm1.CommPort = 1 'Vitesse, parité, nb bits MSComm1.Settings = "9600,N,8,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
Partager