OVH Cloud OVH Cloud

VBA - test IF... OR... OR... OR sur un TextBox qui contient u ne valeur numéric.

15 réponses
Avatar
twinley
Bonjour à Tous

Je n'arrive pas à faire un test sur un TextBox qui contient une valeur
numéric.
TextBox ne supporte t-il pas les nombres mais seulement le texte ?

If Me.TextBox2 <> 1 Or Me.TextBox2 <> 2 Or Me.TextBox2 <> 3 Then
MsgBox (" Mettez 1 ou 2 ou 3 ")
Me.TextBox2.SetFocus
Exit Sub
End If

La recherche dans google avec OR n'est pas aisée.

Comment contourner ça ?

Merci pour votre aide

--
à+twinley

5 réponses

1 2
Avatar
twinley
:-D

non t'inquiètes, je sais m'arrêter à temps.
Grâce à vous tous, j'ai vu où était le pb.
Mais je me devais, par correction, de tout tester. Vous passez du temps
à me répondre, je me dois de regarder et d'essayer puis de donner un
retour.
Comme tout le monde le fait sur ce NG...

Maintenant il faut faire efficace et avancer donc je garde la soluce
Michel select case.

8-)

à+twinley

oui, mais il n'empéche que les textbox retournent string soit "1"
aprés que tu te mélanges les pinceaux avec les or ou les and je dirais "chacun sa m...." :o)
je te vois venir avec tes questions :o)



Avatar
twinley
merci bien

j'archive tout cela dans la bible.

à+twinley

re,

ne marche pas avec les OR mais avec les AND sur win NT avec Excel2000 pour
l'évenement Change du textbox.
D'ailleurs, quelle que soit la version ca devrait marcher car c'est du
booleen pur
Le fait d'écrire des OR implique que si l'une des conditions est réalisée,
la valeur booleenne du IF renvoie TRUE ce qui est forcément le cas avec des
OR car la valeur du textbox ne peut être égale aux 3 valeurs à la fois (1, 2
et 3).

En revanche avec des AND, c'est seulement la conjonction de tous les
critères qui déclenche le TRUE du IF, ce qui est bien le cas si la valeur du
textbox n'est égale ni à 1 ni à 2 ni à 3.

A+



merci pour l'aide mais la situation est inchangée, les and ne m'aident pas.
J'ai une soluce ok avec Pierre et son Select Case.

à+twinley


bonjour,

un petit changement de OR par AND devrait résoudre le problème car tu testes
une différence par rapport à l'une des 3 valeurs possibles

A+





Bonjour à Tous

Je n'arrive pas à faire un test sur un TextBox qui contient une valeur
numéric.
TextBox ne supporte t-il pas les nombres mais seulement le texte ?

If Me.TextBox2 <> 1 Or Me.TextBox2 <> 2 Or Me.TextBox2 <> 3 Then
MsgBox (" Mettez 1 ou 2 ou 3 ")
Me.TextBox2.SetFocus
Exit Sub
End If

La recherche dans google avec OR n'est pas aisée.

Comment contourner ça ?

Merci pour votre aide

--
à+twinley










Avatar
Jacquouille
Bonsoir
Je ne comprends pas bien où tu veux en arriver, mais si tu testais plus
petit que 4, au lieu de dire différent de 1, puis de 2 et enfin de 3?
If CInt(Me.TextBox2) < 4 then ..... ????
Ceci dit et écrit, je pencherais putôt pour le AND que l'Or. Comme bien
expliqué supra.
Bonne chance
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
Jacquouille.

"twinley" a écrit dans le message de news:

Bonsoir

merci pour ton explication

j'ai tenté
If CInt(Me.TextBox2) <> 1 Or CInt(Me.TextBox2) <> 2 Or CInt(Me.TextBox2) =
3 Then

mais ça passe pas.
J'ai une soluce ok avec un select case.

Bonne soirée

à+twinley

Oui, le résultat, c'est du string. Il faut convertir (CInt par exemple).
Daniel
"twinley" a écrit dans le message de news:


Bonjour à Tous

Je n'arrive pas à faire un test sur un TextBox qui contient une valeur
numéric.
TextBox ne supporte t-il pas les nombres mais seulement le texte ?

If Me.TextBox2 <> 1 Or Me.TextBox2 <> 2 Or Me.TextBox2 <> 3 Then
MsgBox (" Mettez 1 ou 2 ou 3 ")
Me.TextBox2.SetFocus
Exit Sub
End If

La recherche dans google avec OR n'est pas aisée.

Comment contourner ça ?

Merci pour votre aide

--
à+twinley








Avatar
twinley
Bonsoir Jacquouille

Il reste le cas du TextBox vide et zéro mais aussi au cas ou
l'utilisateur tape une lettre au lieu de 1, 2 ou 3.
Mes soucis venaient parce que ce n'était pas un nombre.
D'ailleurs, plus loin dans la sub, j'ai remultiplié par 1 le contenu du
TextBox pour transformer le texte en chiffre. (bien pratique ce * 1)

Quand on s'y prend mal, en tatonnant on s'embourbe et à force de
contourner, les choses deviennent tordues...

Bonne soirée.

à+twinley

Bonsoir
Je ne comprends pas bien où tu veux en arriver, mais si tu testais plus
petit que 4, au lieu de dire différent de 1, puis de 2 et enfin de 3?
If CInt(Me.TextBox2) < 4 then ..... ????
Ceci dit et écrit, je pencherais putôt pour le AND que l'Or. Comme bien
expliqué supra.
Bonne chance


Avatar
Jacquouille
Alors, je crains que l'Or ne soit pas bon et que le AND irait mieux.
Mais si tu veux tester aussi (et en plus) le fait du truc vide, alors...le
<4 ne va pas, à moins que les chiffres ne soient plus petits que les
lettres. A tester.
Bonne chance

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
Jacquouille.

"twinley" a écrit dans le message de news:

Bonsoir Jacquouille

Il reste le cas du TextBox vide et zéro mais aussi au cas ou l'utilisateur
tape une lettre au lieu de 1, 2 ou 3.
Mes soucis venaient parce que ce n'était pas un nombre.
D'ailleurs, plus loin dans la sub, j'ai remultiplié par 1 le contenu du
TextBox pour transformer le texte en chiffre. (bien pratique ce * 1)

Quand on s'y prend mal, en tatonnant on s'embourbe et à force de
contourner, les choses deviennent tordues...

Bonne soirée.

à+twinley

Bonsoir
Je ne comprends pas bien où tu veux en arriver, mais si tu testais plus
petit que 4, au lieu de dire différent de 1, puis de 2 et enfin de 3?
If CInt(Me.TextBox2) < 4 then ..... ????
Ceci dit et écrit, je pencherais putôt pour le AND que l'Or. Comme bien
expliqué supra.
Bonne chance




1 2