Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Chercher une chaine de car. dans une cellule

N

Noël

Guest
Bonjour,

Utilisateur novice, et autodidacte, de VBA, je cherche le moyen de chercher une chaine de caracteres dans une cellule :
Pour l'instant, j'utilisait
IF Left(CLASSEUR.Sheets(1).Cells(a, X).Value, g) = Left(Produit1, g) etc ...

et je testais donc les g premiers caracteres de la valeur de la cellule (a,X) , comparés au g premiers caracteres de la chaine recherchée ... or, je vais maintenant avoir des cellules qui contiennent plusieurs noms ou mots, et je souhaite chercher la présence d'un des mots ...


Est-ce qu'il existe un opérateur "contient" qui pourrait me servir, ou si quelqu'un a une idée pour m'aider ...

Merci d'avance ..

Noël
 
S

sousou

Guest
la fonction instr(chaine,rangt,chaine recherchée)
devrait d'aider.

elle renvoie la position de la chaine recherchée dans la chaine ou l'on recherche et a partir d'un numéro de caractère

exemple:
instr("ceci est un exemple",14,"e")
renvoie 15
ou instsr("ceci est un exemple",1,"e") renvoie 2

l'utilisation des fonction mid,left ou right permet ensuite d'extraire ce que tu veux

Bonne chance
 
N

Noël

Guest
Merci pour ta solution, sousou, mais j'ai quelques souçis pour l'appliquer ...

If InStr(Produit, 1, Produit1) > 0 Then etc ... n'est pas "supporté", le débogueur m'indique "type incompatible" or, mes variables Produit et Produit1 sont des "strings" ...

Pourrais-tu me dire ce que j'ai raté ??

Merci pour ton aide ...

Noël
 
W

wape

Guest
Bonjour Noël et le forum,

La syntaxe indiquée par sousou n'était pas tout à fait correcte. Il faut inverser les deux premiers paramètres :

If InStr(1, Produit, Produit1) > 0 Then etc ...


Slts

wape
 
B

bad jack

Guest
Bonsoir,

pour plus de renseignements sur cette fonction, aide de microsoft dans VBA :
InStr, fonction, exemple
Cet exemple utilise la fonction InStr pour renvoyer la position de la première occurrence d'une chaîne dans une autre chaîne.

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' Chaîne dans laquelle s'effectue la
' recherche.
SearchChar = "P" ' Recherche la chaîne "P".

' Une comparaison sans respect des majuscules et des minuscules commence ' à la position 4 et renvoie 6.
MyPos = Instr(4, SearchString, SearchChar, 1)

' Une comparaison avec respect des majuscules et des minuscules commence ' à la position 1 et renvoie 9.
MyPos = Instr(1, SearchString, SearchChar, 0)

' Par défaut (lorsque le dernier argument est omis),la recherche respecte ' les majuscules et les minuscules.
MyPos = Instr(SearchString, SearchChar) ' Renvoie 9.

MyPos = Instr(1, SearchString, "W") ' Renvoie 0.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…