Problème avec InsTr, ne renvoie pas la bonne valeur ! VBA

sebjedi38

XLDnaute Nouveau
Bonjour

Je recherche des carastéres dans une celleule :

' Chercher le texte "<var:_"
Chercher = InStr(AdresseActive, "<var:_")

Si dans ma cellule j'ai "<var:_TOTO> azerty"
"Chercher" me retourne 1, ce qui est parfait.

Par contre si dans ma cellule j'ai " azerty <var:_TOTO>"
"Chercher" me retourne 0 !!!
Je m'attendais a avoir 1 ce qui est normal ! car"<var:_" est présent dans la cellule.

Comment puis je avoir ces conditions de recherche dans une cellule, échercher" me revoyer 1 quand "<var:_" est présent ?

Merci pour votre aide.

Séb
 

Roland_M

XLDnaute Barbatruc
Re : Problème avec InsTr, ne renvoie pas la bonne valeur ! VBA

bonjour

absolument pas ! ce serait illogique !

< var est à la 1' position

par-contre ici " azerty <var:_TOTO>"
ici < var est à la 9'position !

MsgBox InStr("<var:_TOTO> azerty", "<var:_") 'ceci donne 1'position
MsgBox InStr(" azerty <var:_TOTO>", "<var:_") 'ceci donne 9'position
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Problème avec InsTr, ne renvoie pas la bonne valeur ! VBA

re

oui, pour comprendre essaies ceci:

MsgBox InStr("<var:_TOTO> azerty", "<var:_") 'ceci donne 1'position
MsgBox InStr(" azerty <var:_TOTO>", "<var:_") 'ceci donne 9'position

pour info voir aussi l'aide sur instrrev
les deux donnent toujours la position de gauche à droite
mais la recherche s'effectue de gauche à droite avec instr et donnera le premier rencontré en partant de gauche
par-contre il donnera le premier rencontré en partant de droite avec instrrev

EDIT: essaies ceci tu comprendras

Resultat1 = "< <"

ChercherGauche = InStr(Resultat1, "<") ' ici le 1'rencontré en partant de gauche est à la 1'position
ChercherDroite = InStrRev(Resultat1, "<") ' ici le 1'rencontré en partant de droite est à la 5'position
MsgBox ChercherGauche & vbLf & ChercherDroite



pour ta question tester avec if

if InStr(AdresseActive, "<var:_") > 0 then OK !
ou if Chercher > 0 then OK !

RE EDIT:
et par sécurité il est parfois préférable de tester les deux chaînes en minuscule ou en majuscule
avec Lcase() ou Ucase voir là aussi l'aide vba ?
 
Dernière édition:

sebjedi38

XLDnaute Nouveau
Re : Problème avec InsTr, ne renvoie pas la bonne valeur ! VBA

Alors je viens de tester :

Dans Resultat1 = "Display <var:_TOTO>"

ChercherGauche = InStr(Resultat1, "<")
ChercherDroite = InStrRev(Resultat1, ">")

Mais j'ai :

ChercherGauche = 9
ChercherDroite = 19

Dans ChercherDroite je m'attendais a avoir 1 :-(

J'ai encore mal compris ? :-(

Séb
 

Roland_M

XLDnaute Barbatruc
Re : Problème avec InsTr, ne renvoie pas la bonne valeur ! VBA

re

je me suis mal exprimé ! je vais devoir rectifier mon post !

en réalité il donne toujours la position de gauche à droite
mais la recherche s'effectue de gauche à droite avec instr et donnera le premier rencontré en partant de gauche
par-contre il donnera le premier rencontré en partant de droite avec instrrev

EDIT: essaies ceci tu comprendras

Resultat1 = "< <"

ChercherGauche = InStr(Resultat1, "<") ' ici le 1'rencontré en partant de gauche est à la 1'position
ChercherDroite = InStrRev(Resultat1, "<") ' ici le 1'rencontré en partant de droite est à la 5'position
MsgBox ChercherGauche & vbLf & ChercherDroite
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 472
Messages
2 088 709
Membres
103 928
dernier inscrit
MIKETUAU