Comparaison caractères VBA

Résolu/Fermé
niny@ Messages postés 107 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008 - 26 mars 2008 à 10:37
niny@ Messages postés 107 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008 - 1 avril 2008 à 14:53
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

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 mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008
26 mars 2008 à 11:15
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
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 mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008
26 mars 2008 à 10:56
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
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 mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008
26 mars 2008 à 11:31
ok,

je vais voir ca

je te tiens au courant

encore merci

@+
0
niny@ Messages postés 107 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008 > niny@ Messages postés 107 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008
1 avril 2008 à 14:53
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