[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 270 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
Rejoignez-nous