Comparaison caractères VBA

Résolu
niny@ Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   -  
niny@ Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

voili voilou, je code en VBA sous excel et j'aimerai savoir comment faire pour que lorsque un utilisateur tappe un truc dans un textbox même s'il n'y a que le debut de ma chaine de caractère (ou pas tout complet) ca me renvois les informations susceptibles de l'interresser.
pour l'instant j'ai réussi mais il faut qu'il écrive correctement la chaine pour qu'elle soit reconnu et afficher.
comment puis je faire celà ?
A voir également:

3 réponses

amigo
 
La fonction instr() est très utile pour ça,
Si la chaine2 est dans la chaine1 et que la position est 1 alors c'est bon.

Ex:
pos=instr("abc def", "bc") -> pos=2 pas bon
pos=instr("abc def", "ab") -> pos=1 c'est bon

les fonctions Ucase() et LCase() ça sert à dire que "abc" equivalent à "ABC"
3
niny@ Messages postés 107 Date d'inscription   Statut Membre Dernière intervention  
 
ok,

merci pour ton aide, je vais essayé de faire un truc avec tout ca

par contre c'est faisable si ma chaine1 se trouve dans ma BDD ? et que l'on parcours toute la colonne associé à ma requête pour trouver la bonne info ?

0
amigo
 
Bonjour,

Tu peux comparer les chaines en majuscules ou en ninuscules

if instr(ucase(chaine1),ucase(chaine2))=1 then ...
ou bien
if instr(lcase(chaine1),lcase(chaine2))=1 then ...

A+.
0
niny@ Messages postés 107 Date d'inscription   Statut Membre Dernière intervention  
 
pour les chaînes écritent en majuscule ou minuscule ca me pause plus de problème, pour ce cas ca marche même si tout le mot est en majuscule ou en minuscule.

c'est pour la cas ou la personne ecrit "fire" au lieu de "fire détect" du coup ca me renverra rien. or j'aimerai que ca m'affiche ce pouvant être interressant pour l'utilisateur. (fire c'est un exemple, il y a d'autres informations)

en cherchant sur internet je ne trouve pas comment faire le seul truc que j'ai vu susceptible de marcher c'est comparaison de chaine dans une chaine, mais je vois aps comment l'appliquer et si ca marcherai.
0
amigo
 
Je pense que oui,
à partir du moment que tu affecte les chaines à comparer avec les bonnes valeurs, dans ton cas la fonction Instr() te renverra toujours 1 si c'est bon et (0 ou >1) si c'est pas bon.
0
niny@ Messages postés 107 Date d'inscription   Statut Membre Dernière intervention  
 
ok,

je vais voir ca

je te tiens au courant

encore merci

@+
0
niny@ Messages postés 107 Date d'inscription   Statut Membre Dernière intervention   > niny@ Messages postés 107 Date d'inscription   Statut Membre Dernière intervention  
 
finallement tout venait de ma requête il suffisait de faire :

Requete6 = "SELECT Install FROM CONSO WHERE Lcase(Install)like '" & chaine & "*'"

chaine recoit le contenu de mon textbox, plus de différence de majuscule, même si le mot n'est pas entier ca renvoit une liste qui pourrait convenir.

merci @+
0