Port com ouvert mais reconnu fermé sous vista

Signaler
Messages postés
5
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
1 avril 2010
-
Messages postés
5
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
1 avril 2010
-
Bonsoir,

Mon code permet de lire les infos issues d'un port serie et de les transferer dans un tableau excel.
La macro semble juste, le port correctement defini (Settings, N°..) et pourtant, j'ai un message m'indiquant le refus d'execution pour cause d'erreur "8018": l'application ne peut fonctionner qu'avec le port ouvert.
J'ai testé hyper terminal avec le meme raccordement (convertisseur serie/usb, meme port...) et je recois sans pb les infos.
Si quelqu'un a une idée, je lui passe le code pour analyse.

Cordialement.
Bruno

7 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
une erreur dans ton code, tout bêtement...

je pense à une ligne manquante...
quelque chose comme :

MsComm1.PortOpen = True

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
5
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
1 avril 2010

Desolé,
j'ai verifie l'ensemble des parametres et notamment celui la bien sur
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
"parametre" ?

le fais tu bien dans le code ?

(pourrais tu nous montrer le code autour de la ligne de code incriminée par le message d'erreur ?)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
5
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
1 avril 2010

Bonjour,

Question idiote, je suis novice sur ce site :
comment integrer le code dans ce message ?
Messages postés
5
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
1 avril 2010

Ce n'est pas ta question qui est idiote , c'est la mienne bien sur !!!!
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
copie/colle simplement le texte, on s'y retrouvera je pense sans les details du xls....

utilises le coloriage du code (troisieme bouton en partant de la droite)


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
5
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
1 avril 2010

Voila le code complet :

'CODE de la MACRO Visual basic de traitement Teleinfo avec interface simple entrée WinVista

'initialisation
Private Sub CommandButton1_Click()
Dim tampon As Single
tampon = 0
Dim ADCO, OPTARIF, ISOUSC, EJPHN, EJPHPM, PTEC, IIST, IMAX, NB As String
'fait le menage du tableau precedent
Range("a12:k65536").Value = ""
Range("a11").Value = "0"
Range("a12").Select
With NETComm1
.CommPort = 4
.InBufferCount = 0
.Settings = "1200,E,7,1"
.InputMode = comInputModeText
.Handshaking = comNone
.InputLen = 0
.PortOpen = True
End With
End Sub
'acquisition manuelle
Private Sub CommandButton3_Click()
Do While NETComm1.InputData <> Chr$(2) ' Ici
Loop
Do
DoEvents
tampon = tampon & NETComm1.InputData
Loop Until InStr(tampon, Chr$(3))
' appel de la routine de traitement des donnees
Call trait(tampon)
'vidage du tampon
tampon = ""
End Sub
'acquisition auto
Private Sub CommandButton4_Click()
'initialisation des compteurs
pausetime = CSng(Range("g7")) 'cadence acquisition
nbacq = CSng(Range("g8")) 'nb acquisition
For I = 1 To nbacq
NETComm1.InBufferCount = 0
start = Now 'Définit l'heure de début
fin = start + (pausetime / 86400) 'Définit l'heure de captation
Do While Now < fin
'Range("h2").Value = (fin - Now) * 100000
Range("h3").Value = Now
Range("h4").Value = fin
Loop
'stockage des données dans "tampon"
'attente de "STX",début de groupe de message
Do While NETComm1.InputData <> Chr$(2) 'Chr$(2)="STX"
Loop
'stockage dans tampon jusqu'a "ETX",fin de groupe
Do
DoEvents
tampon = tampon & NETComm1.InputData
Loop Until InStr(tampon, Chr$(3)) 'Chr$(3)="ETX"
' appel de la routine de traitement des donnees
Call trait(tampon)
' vidage du tampon
tampon = ""
Next I
End Sub
Sub trait(tampon)
'calcul de numero chronologique de la saisie n+1
NB = CSng(ActiveCell.Offset(-1, 0)) + 1
'calcul des valeurs d'entrée en fonction
'position ds groupe message et
'nb caractères de chaque message
ADCO = Mid(tampon, 6, 13)
OPTARIF = Mid(tampon, 31, 4)
ISOUSC = Mid(tampon, 44, 2)
EJPHN = Mid(tampon, 61, 10)
EJPHPM = Mid(tampon, 79, 10)
PTEC = Mid(tampon, 90, 5)
IIST = Mid(tampon, 101, 4)
IMAX = Mid(tampon, 111, 4)
'affichage des valeurs dans la feuille xls
' numero chronologique d'acquisition
ActiveCell.Offset(0, 0).Value() = CSng(NB)
' date et heure d'acquisition
ActiveCell.Offset(0, 1).Value = CDate(Date)
ActiveCell.Offset(0, 2).Value = CDate(Time)
' valeur des entrées
ActiveCell.Offset(0, 3).Value() = ADCO
ActiveCell.Offset(0, 4).Value = OPTARIF
ActiveCell.Offset(0, 5).Value = ISOUSC
ActiveCell.Offset(0, 6).Value = EJPHN
ActiveCell.Offset(0, 7).Value = EJPHPM
ActiveCell.Offset(0, 8).Value = PTEC
ActiveCell.Offset(0, 9).Value = IIST
ActiveCell.Offset(0, 10).Value = IMAX
' passage à la ligne suivante
ActiveCell.Offset(1, 0).Select
End Sub
'arrêt de la macro
Private Sub CommandButton2_Click()
NETComm1.PortOpen = False
Unload Me
End
End Sub
Private Sub TextBox1_Change()

End Sub

Private Sub UserForm_Click()

End Sub