Problème d'infériorité avec 2 textbox

Bonjour à tous,

Étant nouveau sur le forum, mais aussi débutant en VBA je me jette à l'eau et fait appel à vous pour trouver une solution à mon problème.

J'ai bien évidemment fait pas mal de recherche pour le résoudre mais en vain.

Je m'explique:

J'ai créé 2 formulaires nommés Userform1 et Userform2, dans chacun des formulaires j'ai ajouté une textbox nommée TexTbox1 pour l'Userform1 et TexTbox2 pour l'Userform2.

Dans ces textbox seuls les valeurs numériques sont acceptées.

Pour ces textbox il y une condition qui doit-être respectée, la valeur (numérique) TexTbox1 de l'Userform2 doit-être inférieur à la TexTbox1 de l'Userform1.

Voici mon code

Private Sub CommandButton1_Click()

If UserForm1.TextBox1.Value < UserForm2.TextBox2.Value Then

MsgBox ("veuillez saisir une valeur inférieur au textbox1")

Exit Sub

End If

MsgBox ("ok valeur inférieur")

End Sub

Si j'écris 90 dans la TexTbox1 et 95 dans la TexTbox2 la condition fonctionne et me dit de saisir une valeur inférieur à la TexTbox1

Si je mets 89 ok la condition est validée

mais le problème c'est quand j'écris 100 dans la TexTbox1 peu importe les valeurs que je saisis (par exemple 50) dans la TexTbox2 la condition me dit de saisir une valeur inférieur ( alors que 50 est bien inférieur à 100 !?)

Je vous est mis un fichier en pièce jointe avec les 2 Userform en question.

J’espère avoir été assez clair sur mon explication

Merci d'avance.

Bonne journée

Salut,

Je ne peux pas te dire exactement pourquoi, mais si tu remplaces ta ligne

If UserForm1.TextBox1.Value < UserForm2.TextBox2.Value Then

par la ligne

If UserForm1.TextBox1 * 1 < UserForm2.TextBox2 * 1 Then

ça passe.

Ceci parce que si tu ne multiplie pas les valeurs des TextBox par 1, ça reste des sortes de textes lors de la comparaison (visible dans le mode pas à pas).

Il y a une autre chose un peu illogique dans ta macro : Ton texte indique qu’il faut saisir des valeurs inférieurs dans le TextBox2, mais ton code accepte les valeurs égales (si tu indiques 100 des deux côtés, ça passe).

Afin de n’accepter que des valeurs inférieures, tu devrais utiliser le code suivant :

If UserForm1.TextBox1 * 1 <= UserForm2.TextBox2 * 1 Then

Cordialement.

Bonjour Yvouille,

Super ça fonctionne

Je te remercie pour ton aide !

Bonne journée.

Rechercher des sujets similaires à "probleme inferiorite textbox"