Probleme Val(Mid(........))

Résolu
InfoGeo Messages postés 87 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 17 avril 2013 - 11 mai 2011 à 11:27
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 - 11 mai 2011 à 11:50
Salut,

je voudrais obtenir la réponse d'un capteur apres lui avoir envoyé la commande qui me permet d'obtenir son model:
syntaxe de la réponse: !AATxxxx ou AA correespond a l'adresse et xxxx au model, exemple de ce que je recois: !01T3411

Donc voila moi, c'est bete a dire mais je voudrais juste garder 01T3411 sans le "!" et j y arrive pas et ca me fait craquer !!!!

voila le programme:


Public Function IsPresent(val_model As String) As Boolean
' Vérifier que le capteur répond sur le bus avec son adresse

'=======variables==========

Dim cmd As String
Dim rsp As String
Dim StartTime As Double


'==========================


'commande-------------

cmd = "$" & Format(Address, "00") & "M" & vbCr   'la commande pour connaitre le numéro de série de notre capteur est sous cette forme $AAF
                                                 'où AA correspond a l addrese de notre capteur et
                                                 
Call MyComPort.SendString(cmd)                'on envoit la commande vers notre capteur d'adresse AA
                               

StartTime = TimerExtended

rsp = ""

IsPresent = False


'réponse--------------
  Do
    DoEvents
    rsp = rsp & MyComPort.ReadString(0)
    If ElapsedTime(StartTime) > Timeout Then Exit Function
  Loop While InStr(rsp, vbCr) = 0

  If Left(rsp, 1) = "!" Then
     val_model = Val(Mid(rsp, 2)) 'on prend toute la chaine de caractère a partir du deuxième caractère     
     IsPresent = True
  End If



et mon val model au lieu d etre égal à 01T3411 et il est égale à 0.

Je sais que c est super bidon mais moi je suis nul et la je craque voila donc aidez moi svp

2 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
11 mai 2011 à 11:50
bonjour
supprime simplement le "Val" qui te renvoi la valeur numérique de la partie gauche de la chaine soit 1 pour "01"
si tu avais consulté l'aide en faisant F1 sur Val tu l'aurais vu

si c'est la solution, penser : REPONSE ACCEPTEE
3
InfoGeo Messages postés 87 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 17 avril 2013
11 mai 2011 à 11:28
rectification val_model = 1
0
Rejoignez-nous