fonction mscomm1.input utilisable une seule fois?
Bonjour,
j'utilise la fonction mscomm1 pour communiquer entre une carte électronique
et le pc.
Elle envoie des trames et je les traite via visual basic
Code:
1 2 3 4
| Do
DoEvents 'indispensable sinon ça marche pas!!!
Tampon$ = Tampon$ & MSComm1.Input
Loop Until InStr(Tampon$, "OK" & vbCrLf) |
^
|
j'ai trouvé ceci sur le site
Mais dans mon application je dois l'utiliser plusieurs fois
A partir de la deuxième fois que je l'utilise il garde la trame précedente
voici mon code
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 27 28 29 30 31 32 33 34 35 36 37 38
| Private Sub J18_Click()
'déclaration des variables
Dim trame2 As String
Dim tramefinie As String
Dim i As Byte
i = 1
Dim Retour As Integer
'configuration du port série
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
Do
DoEvents
trame2 = trame2 & MSComm1.Input 'récupération de la trame
Loop Until InStr(trame2, vbCrLf)
{
'traitement
}
Sheets("resultat").Range("B" & i) = tramefinie 'ici aucun problème(il affiche
'la bonne trame Exemple : 12)
Retour = msgbox("Placer J17 et appuyer sur OK", vbOKCancel + vbInformation + vbDefaultButton2, "J17")
If Retour = vbOK Then
Do
DoEvents
trame2 = trame2 & MSComm1.Input
Loop Until InStr(trame2, vbCrLf)
{
'traitement
}
i=i+1
Sheets("resultat").Range("B" & i) = tramefinie 'par contre ici il me réaffiche
'la même trame que précedemment Ex:12)
End If
MSComm1.PortOpen = False
End Sub |
je pense que : la variable trame2 = 0 la 1ère fois que je l'utilise vu qu'elle doit être initialisée.
et la variable trame2 = 12 la deuxième fois
mais vous êtes d'accord pour dire que si c'était le cas:
Code:
1 2
|
trame2 = trame2 & mscomm1.input |
deviendrais trame2 = 0 dans le 1er cas.
Dites-moi ce que vous en pensez s'il vous plait
Merci d'avance
Elfstat.