linasteph
Messages postés153Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 juillet 20091 28 févr. 2007 à 09:51
Salut,
En fait cela te donne la position dans la chaîne du premier caractères xxx mais en partant de la fin de la chaîne vers le début.
Ici Instr and InstrRev donne le même résultat vu que'il n'y a qu'un seul caractère ! dans ta chaîne.
Si tu veux récupérer ce qu'il y a à droite du caractère !, utilise MsgBox Right(lstrMyStr, Len(lstrMyStr) - InStrRev(lstrMyStr, "!"))
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 28 févr. 2007 à 09:51
InstrRev fonctionne donc correctement.
InStrRev te retourne l'index du premier caractère rencontré correspondant au caractère passé en paramètre. Le Rev ne signifie aucunement que le comptage des index commence à la fin. C'est juste la recherche qui commence par la fin.
Il est donc tout à fait normal que InStrRev te renvoie 13.
Si tu veux effectivement avoir l'index en partant de la fin, il faut faire Len(lstrMyStr)-InstrRev( lstrMyStr, "!" )
Si tu veux seulement récupérer les derniers caractères tu peux aussi (et même plutot) utliser la fonction Mid à la place de Right.
ZedMaTrix
Messages postés178Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention14 août 2008 28 févr. 2007 à 09:52
Aprés quelques tests, je m'apercoie que InStr me renvoie la position du premier '!' tout comme InStrRev car il n'y a que un '!'
Parcontre si j'en place un deuxième, il me donne bien le dernier.
Enffet je vient de comprend mon erreur....
J'ai mal compris le fonctionnement de la fonction.
Je pensais que InStrRev lisais notre chaine en partant de la fin vers le début, et donc retournais la position en partant de la fin du premier '!'...