connecter une balance avec Excel
Bonjour à tous,
Avant toute chose, je précise que je suis débutant.
Voici mon problème, je désir récupérer des données provenant d’une balance (paramètre : bauds 9600, parité aucune, bits de données 8, Bits d’arrêt 1).
Le but est de faire une série de 18 mesures, pour faire une courbe et ensuite d’effacer ces données pour pouvoir refaire une série.
J’arrive à communiqué avec la balance, mais je suis obligé de passé par une UserForm. Lorsque je valide « OK » avec la MsgBox , la première valeur est correcte, mais si je revalide « OK » celle-ci n’est pas toujours correcte. Je suis obligé de faire « Cancel » et de relancer les étapes.
J’aimerai savoir, si je suis obligé de passer par une UserForm ?
Ou quel est le code pour empêcher la MsgBox à réapparaître après la 1er mesure ?
Comment faire une série de 18 mesures, puis revenir à la 1ère ?
Je vous joins le code que j’applique :
Code:
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
| Private Sub CommandButton1_Click()
'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
Do
Reponse = MsgBox("Appuyer sur OK" & vbCrLf & Msg$, vbOKCancel, "Lire la valeur")
If Reponse <> vbOK Then Exit Do
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)
ActiveCell.Value = Pds$ 'colle le poids dans la cellule active
ActiveCell.Offset(1, 0).Activate 'cellule suivante
Loop
'Ferme le port
MSComm1.PortOpen = False
End Sub |
Je vous remercie d’avance