Port com et excel

tontonmsirda Messages postés 10 Date d'inscription mardi 21 novembre 2006 Statut Membre Dernière intervention 7 septembre 2007 - 26 juil. 2007 à 15:55
tontonmsirda Messages postés 10 Date d'inscription mardi 21 novembre 2006 Statut Membre Dernière intervention 7 septembre 2007 - 27 juil. 2007 à 10:26
j'essaie d'envoyer des données sur excel depuis le port com et ça marche.
mon probleme est que lorsque je commence à envoyer les données, je n'arrive pas arrêter parce que la fenêtre Main se grise et je n'ai pas accès au bouton stop.

Quelqu'un peut il m'aider ?



Function
ReceiveSerialData()

As



String








Dim
returnStr

As



String
=

""






Dim
lacase

As



String






Dim
AppExcel

As



New
Excel.Application


Dim
filename

As



String
=

"c:\temp\essai.xls"






Me
.Button1.Enabled =

False






Me
.Button2.Enabled =

True

AppExcel.Workbooks.Open(filename)


AppExcel.Visible =




True






'Using com1 As IO.Ports.SerialPort = _






'My.Computer.Ports.OpenSerialPort("COM1")






Me
.SerialPort1.BaudRate = 9600


Me
.SerialPort1.Parity = IO.Ports.Parity.None


Me
.SerialPort1.StopBits = IO.Ports.StopBits.One


Me
.SerialPort1.DataBits = 8


Me
.SerialPort1.Handshake = IO.Ports.Handshake.XOnXOff


Me
.SerialPort1.ReceivedBytesThreshold = 1


Me
.SerialPort1.Open()


'MsgBox(lecture)






'com1.RtsEnable = True






Do






Dim
Incoming

As



String
=

Me
.SerialPort1.ReadLine()


If
Incoming

Is



Nothing



Then






Exit



Do






Else

returnStr &= Incoming & vbCrLf


lecture = Mid(Incoming, 6, 10)


lacase = Mid(Incoming, 1, 1)


AppExcel.ActiveCell.Activate()


AppExcel.ActiveCell.Value = lecture







If



Me
.RadioButton1.Checked =

True



Then






'envoi donnees en colonnes

AppExcel.ActiveCell.Offset(1, 0).Activate()







End



If






If



Me
.RadioButton2.Checked =

True



Then






'envoi donnees en ligne

AppExcel.ActiveCell.Offset(0, 1).Activate()







End



If






End



If






Loop






'End Using






Return
returnStr


End



Function

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 juil. 2007 à 16:00
Ajoutes un DoEvents dans ta boucle
tontonmsirda Messages postés 10 Date d'inscription mardi 21 novembre 2006 Statut Membre Dernière intervention 7 septembre 2007
27 juil. 2007 à 10:26
Renfield,

merci maintenant j'arrive à dégriser la fenêtre "Main" mais je n'arrive toujours pas à appuyer sur le bouton Arrêt qui permet l'arrêt de la fonction.
dois insérer une tempo ?

Do

Application.DoEvents()

DimIncoming
As
String=
Me.SerialPort1.ReadLine()

IfIncoming
Is
Nothing
Then ........
Rejoignez-nous