Problème de comparaison de string

Résolu
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005 - 20 mai 2005 à 11:34
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005 - 20 mai 2005 à 12:55
bonjour à tous,

j'ai un problème concernant une comparaison de string en VB6.

je demande à l'utilisateur de choisir le nom d'un mois (en anglais) et d'après le choix, je recherche ce mois (dont les 3 premières lettres en français sont 'fev') dans une feuille excel. donc j'ai le code suivant:

Dim Row As Integer


If RealizationMonth.Value = "february" Then
Row = 1119
For Row = 1119 To 1130
If CStr(Val(Mid(Range("H" + CStr(Row)), 1, 3))) = "fev" Then
MsgBox "trouvé"
Else
MsgBox "pas trouvé"
End If
Next


End If

dans ce code, 'fev' existe bien dans l'intervalle des lignes vérifiées et pourtant, la message box affiche toujours 'pas trouvé'... d'où cela peut bien venir?

merci de votre réponse parce que je suis vraiment dans la mouise si je trouve pas de solution.... (et c'est un euphémisme)

Daydayerement Vôtre

3 réponses

gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
20 mai 2005 à 12:24
Bonjour,






Deja avec un test comme tu le fais y a aucune change que cela fonctionne.






Rien qu’avec la conversion Val() tu convertis ta chaîne de caractère en une valeur qui comme tu le dit pour moi sera obligatoirement = 0. Apres avec CStr() tu la remet en String qui sera donc 0






Fait un premier test en écrivant la ligne suitante






If CStr(Val(Mid(Range("H" + CStr(Row)), 1, 3))) = "0" Then
MsgBox "trouvé"
Else
MsgBox "pas trouvé"
End If






Et maintenant juste avant ce test écrit cela pour que tu comprenne bien d’ou viens l’erreur.






Msgbox (LCase(Mid Range("H" + CStr(Row)), 1, 3)))






Avec tout cela tu connaît ton erreur et tu peux la corrige… Et si tu vois toujours pas c’est






If
LCase(Mid Range("H" + CStr(Row)), 1, 3))
= "0" Then
MsgBox "trouvé"
Else
MsgBox "pas trouvé"
End If



Une toute derniere chose retire "Row = 1119" sa sert a rien dans ce code vu que ton for commence a cette valeur...


@++
[Gally Home Corp]
3
linasteph Messages postés 153 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 juillet 2009 1
20 mai 2005 à 11:54
Petite question est-ce que c'est 'fev' ou 'fév'?

En Français Février prend un é et lors de la comparaison de chaîne c'est complètement différent
0
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005
20 mai 2005 à 12:55
c'est bon j'ai trouvé la solution...
la syntaxe était pas bonne et y'avait des problèmes de format de date (je travaille avec des dates qui des fois sont sous format date et des fois en format standard de cellules... c'est un peu le binz dans ce tableau excel...)
merci de vos réponses!

Daydayerement Vôtre
0
Rejoignez-nous