[VBA]Lecture port série RS232

julienexam
Messages postés
21
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
12 avril 2012
- 11 avril 2012 à 10:45
julienexam
Messages postés
21
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
12 avril 2012
- 12 avril 2012 à 08:18
Bonjour,
J'ai fait un programme sur excel 2003/VBA pour communiquer entre mon ordinateur et une balance via un port série.
Lorsque je lance mon programme aucune erreur ne s'affiche, mais je n'arrive pas à récupérer les infos envoyées par la balance. En effet, je voudrais rentrer dans un textbox la valeur de la balance en appuyant sur un bouton de mon userform.

Voici le programme :

Private Sub CommandButton1_Click()

' Tampon devant contenir la chaîne d'entrée
Dim Buffer As String
Dim t As Long

' Utilise COM1
MSComm1.CommPort = 5 ' port usb à gauche de l'ordinateur.

' 9600 bauds, pas de parité, 8 bits de données et 1 bit d'arrêt.
MSComm1.Settings = "9600,N,8,1"
' Indique au contrôle qu'il doit lire la totalité
' du tampon si la propriété Input est utilisée.
MSComm1.InputLen = 0
' Ouvre le port.
MSComm1.PortOpen = True
' Envoie la commande "lecture" de la balance.
MSComm1.Output = "S" & vbCrLf
MSComm1.InputLen = 10

t = Timer + 4: Do Until Timer > t: DoEvents: Loop

TextBox1.Value = MSComm1.Input

Dim data As String
data = MSComm1.Input
TextBox1.Text = data
If MSComm1.PortOpen True Then MSComm1.PortOpen False

End Sub

Est ce que quelqu'un aurait une idée? Je pense avoir bien programmée la balance et avoir envoyée la bonne commande.

Je vous remercie,


julienexam

8 réponses

Genildf
Messages postés
272
Date d'inscription
lundi 12 janvier 2009
Statut
Membre
Dernière intervention
30 décembre 2015
1
11 avril 2012 à 15:02
tu n'as pas un event d'aquisition sur ton mscomm1 plutot que ton

t
= Timer + 4: Do Until Timer > t: DoEvents: Loop
0