Comparaison de chaîne de caractère - VB/VBA/VBS - Programmation
Marsh Posté le 20-06-2006 à 15:58:19
Si je fais :
? lcase$("réactif" ) = lcase$("Réactif" )
en fenêtre de debug, j'obtiens bien Vrai
Donc tes valeurs ne sont pas ce qu'elles paraissent.
Comment as-tu vu que les valeurs sont « bonnes », en minuscules ?
Marsh Posté le 20-06-2006 à 16:16:46
Tres sommaire ... mais qui marche
|
Marsh Posté le 20-06-2006 à 16:22:36
Tegu: ben j'ai fais :
MsgBox LCase(Trim(Selection.Text)) et
MsgBox LCase(Trim(objexcel.ActiveCell.Offset(cpt, 0).Value))
et je vois que les mots sont identiques...
Marsh Posté le 20-06-2006 à 16:36:14
Et si tu fais :
? LCase(Trim(Selection.Text)) = LCase(Trim(objexcel.ActiveCell.Offset(cpt, 0).Value))
ça te donne quoi ?
Utilise les fonctions avec le $ à la fin sinon tu récupères des variants et pas des String dans ta comparaison. Ça peut jouer.
Marsh Posté le 20-06-2006 à 16:54:21
ça me renvoie Faux!Et j'ai ajouté $.Est-ce-que tu penses que la police ou le style peut jouer? ça serait dingue ms bon...
Marsh Posté le 20-06-2006 à 17:20:07
A mettre dans Module d'une feuille
|
Marsh Posté le 20-06-2006 à 17:34:34
Merci kiki ms je dois faire tourner cette macro sur pleins de poste et je me sert de cette comparaison ds mon code dc c peut-être pas la solution la plus simple non??
Marsh Posté le 20-06-2006 à 17:54:33
A priori oui, mais il faudrait tester pour l'évaluer
par contre elle marche ...
Marsh Posté le 23-06-2006 à 15:28:09
As tu penser a utiliser "Like" ??
if chainetest like référence-de-test then
msgbox("Bingo c'est gagné" )
else
msgbox(" Ululu tu l'as dans le c**" )
endif
J'ai pas trop compris les autres réponses mais il me semble que dans ton premier post c'est bien ce genre de réponse que tu veux obtenir
Marsh Posté le 23-06-2006 à 16:08:18
lol voilà t'as tout compris..je crois que j'avais déjà essayé. Mais je vais quand même tester et je te dirai...
Merci!
Marsh Posté le 23-06-2006 à 16:22:10
Utilise la fonction:
strcomp avec l'option vbTextCompare. Elle ignore les majuscules/minuscules.
Marsh Posté le 20-06-2006 à 14:55:17
Bonjour,
J'ai une macro qui offre la possibilité à l'utilisateur d'entrer des mots dans un fichier excel, si le mot est déjà présent on ne le rentre pas à nouveau.
Le problème c'est que par exemple:"réactif" et "Réactif" sont considérés comme différents!
Voilà ma comparaison :
If LCase(Trim(Selection.Text)) = LCase(Trim(objexcel.ActiveCell.Offset(cpt, 0).Value)) Then
MsgBox "Identiques"
Else
MsgBox"Différents"
EndIf
Quand je fais afficher les 2 mots ils sont pourtant bien identiques, tous les 2 en minuscules...
Si vous avez la solution...
Message édité par acorsa le 20-06-2006 à 14:58:02