Rechercher : dans
Par :

Comparaison caractères VBA

Dernière réponse le 1 avr 2008 à 14:53:50 niny@, le 26 mar 2008 à 10:37:35 
 Signaler ce message aux modérateurs

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à ?

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « comparaison caractères VBA » dans :
VB6/VBA Transformer nombre en texte VoirIntroduction Préliminaires VB6 Dans le module de la forme Dans Module1 Introduction La fonction peut transformer des nombres de l'unité jusqu'à 999 tera. Prend en compte la syntaxe pour le français de France, de Belgique et de...
[VBA] Ecrire/lire une série de TextBox en une seule Sub VoirEn VBA, les TextBox ne disposent pas d'un index et dans la plupart des cas, pour entrer du texte, on procède par.. TextBox1.Text = Cells(2,1).value TextBox2.Text = Cells(2,2).value TextBox3.Text = Cells(2,3).value Et l'inverse pour lire les...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

amigo, le 26 mar 2008 à 10:48:43

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+.

Répondre à amigo

2

niny@, le 26 mar 2008 à 10:56:16

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.

Répondre à niny@

3

amigo, le 26 mar 2008 à 11:06:04

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"

Répondre à amigo

4

niny@, le 26 mar 2008 à 11:15:46

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 ?

Répondre à niny@

5

amigo, le 26 mar 2008 à 11:22:46

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.

Répondre à amigo

6

niny@, le 26 mar 2008 à 11:31:06

Ok,

je vais voir ca

je te tiens au courant

encore merci

@+

Répondre à niny@

7

 niny@, le 1 avr 2008 à 14:53:50

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 @+

Répondre à niny@