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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.