khitan72
Messages postés12Date d'inscriptionjeudi 5 juillet 2007StatutMembreDernière intervention 5 janvier 2009
-
23 juil. 2007 à 13:24
khitan72
Messages postés12Date d'inscriptionjeudi 5 juillet 2007StatutMembreDernière intervention 5 janvier 2009
-
26 juil. 2007 à 13:52
Bonjour,
je cherche a lire ecrire sur un port com virtuel (55) par excel
(liaison en port serie avec un télephone via USB (cable, IRDA ou dongle USB BT)
avez vous un script a copier coller sous excel d'une dizaine de ligne, car mscomm est limitée et j'ai l'erreur 8002
mon but
envoyer sur le port com 55 la chaine ATZ
en echange je dois recevoir un OK
autrement, il y a t'il un moyen d'avoir acces a des commande de type my.computer.contolkey.down de VB sous excel ?
merci d'avance
A voir également:
Vba serial port
Port vba - Meilleures réponses
Excel vba serial port communication - Meilleures réponses
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 23 juil. 2007 à 20:58
Effectivement, si tu utilise le composant MSComm tu ne peux utiliser que les 16 premiers n° de port série (COM1 à COM16)
Je ne sais s'il existe d'autres solutions en VBA. Fait peut-etre une recherche dans les sources ou même sur le forum à ce sujet.
Perso, j'ai recontrer ce problème en VB5 une fois, je ne m'étais pas embéter, j'avais développer ma propre gestion du port série dans une Dll en C. Mais bon, tout ça ne va pas t'aider.
---- Sevyc64 (alias Casy) ----# LE PARTAGE EST NOTRE FORCE #
khitan72
Messages postés12Date d'inscriptionjeudi 5 juillet 2007StatutMembreDernière intervention 5 janvier 2009 24 juil. 2007 à 08:22
Bonjour,
merci pour la réponse, en fait une réponse est fournié par le support microsoft, acheter le composant PDQCOM d'une société :)
sinon, peux t'on intégrer les références VB sous VBA car j'ai un exemple de gestion sur le port série par une fonction IO.Ports.serial.Port issu du guide de survie du VB acheté hier soir
est ce que cela marcherait pour un port > 9 (erreur 8002)
je recherche les composants IOserial port et my computerkey pour traiter les les touches type Controle+Z
derniere question : les thread existent sous VB et peuvent permettent de palier un mauvais
une boulette dans une boucle (type infinie) peux t'on les porter dans VBA ?
example
Dim Com1 As IO.Ports.SerialPort
Com1 = my.computer.Ports.openSerialPort("com1", 19200)
'ecriture
' Com1.write ("chaine1" & vbCrLf)
Dim st As String
'lecture
'Com1 = My.Computer.Ports.OpenSerialPort("com1", 19200)
'Do
'st = Com1.Readline()
'label1.Text = st
'Loop
Dim st As String
Dim Portserie As String
st = "les ports series sont:" + vbCrLf
For Each Portserie In my.computer.port.serialPortNames
st = st + " -" + Portserie + vbCrLf
Next
textBox1.Text = st
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 24 juil. 2007 à 11:50
Attention à ne pas confondre VB6/VBA avec VB.Net.
Le code que tu donne semble etre du code VB.Net.
Effectivement la classe .Net SerialPort n'est pas limitée dans le n° de port. Par contre elle n'est pas utilisable directement en VBA.
Je ne sais pas si c'est possible avec VBA, mais avec VB6, il est possible d'aller utiliser des classes du framework .Net mais cela necessite des faire quelques manipulations auparavent. Ce n'est pas aussi simple que d'integer la référence.
J'avais trouvé un tutorial sur l'utilisation des classes .Net dans VB6, mais je n'arrive pas à y remettre la main dessus. Il me semblait pourtant que c'était sur le site Developpez.com.
Pour ce qui est des threads, que ce soit en VB6 ou en VBA, oublie tout simplement. Ces langages ne sont pas capables de gerer le multithreading. La seule garantie que tu pourras obtenir en faisant du multithreading en VB6/VBA, c'est de planter à coup sûr, non seulement le logiciel, mais aussi la machine (le celebre Ecran bleu, BSOD pour les intimes).
---- Sevyc64 (alias Casy) ----# LE PARTAGE EST NOTRE FORCE #
khitan72
Messages postés12Date d'inscriptionjeudi 5 juillet 2007StatutMembreDernière intervention 5 janvier 2009 26 juil. 2007 à 13:52
bonjour,
j'ai resolu mon pb, a savoir lecture ecriture sur le port com avec MSCOMM
sous VBA, on est bien limité a quelque port , et ne prenant un COM3 cela marche sinon erreur 8002
pour aider a la résolution ,j'ai télécharger un freeware pour espionner les port com (serial port) et cela permet de voir si on envoie/recoit les données correctement (HDD free serial port monitor ou autre de démo)
voici ce que j'avais écrit
Dim tampon$
Dim MSComm1 As New MSComm
MSComm1.CommPort = 3 ' Com Port 3
' Set for 9600 baud, no parity, 8 data, and 1 stop bit.
MSComm1.Settings = "115200,N,8,1"
' Tell the control to read entire buffer when Input is used
MSComm1.InputLen = 0
' Open the port
MSComm1.PortOpen = True
' Send an 'AT' command to the phone
MSComm1.Output = "ATZ" & Chr$(13) & Chr(10)
Do
DoEvents
tampon$ = tampon$ & MSComm1.Input
Range("A3").Select
ActiveCell.FormulaR1C1 = tampon$
'voici la reponse dans le input fournit par le sniffer et tampon$
41 54 64 74 30 32 35 33 30 34 36 37 30 33 0D 0D ATdt0253046703..
0A 4E 4F 20 44 49 41 4C 54 4F 4E 45 0D 0A .NO DIALTONE..
Loop Until InStr(tampon$, "ok" & vbCrLf) => boucle infinie dans ce code,
normal vu la réponse ci dessous
'voici la reponse dans le input fournit par le sniffer et tampon$
cellule A3 = ATZ..OK
41 54 5A 0D 0D 0A <st1:metricconverter productid="4F" w:st="on">4F</st1:metricconverter> 4B 0D 0A ATZ...OK..