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