Problème avec le signe Inférieur/Supérieur ou égal

Justfun

XLDnaute Nouveau
Bonjour à tous,

J'ai un petit soucis sous Excel et j'aurai besoin d'un peu d'aide. (Fichier en PJ pour comprendre.)

J'ai un userform avec 2 Textboxs et je souhaiterai que la couleur d'un label s'adapte en fonction des 2 textboxs.

Si A inférieur à B, le label est rouge
Si A=B, le label est vert
Si A Supérieur à B, le label est bleu

Donc quand je rentre A=1 et B=2, tout fonctionne.
Idem si A=2 et B=1, .....

Mais lorsque je mets A=12 et B=2, le label devient rouge (Soit A<B).
Idem lorsque je mets A=23 et B=3, le label devient rouge (Soit A<B).
Et pour A=43 et B=3, le label devient Bleu (A>B) donc ça marche.

J'ai l'impression que la condition ne prend en compte que le premier chiffre.
Pourquoi?
Avez vous déjà eu ce problème?
Avez vous une solution?

Merci d'avance
 

Fichiers joints

phlaurent55

XLDnaute Barbatruc
Bonjour

C'est normal, c'est un classement alphabétique

Il faut multiplier par 1 le contenu des Tbox avant de faire la comparaison

Ou comparer TBox1.Value avec TBox2.Value

À+
Philippe
 

vgendron

XLDnaute Barbatruc
Hello
comme l'indique le nom du controle.. Textbox contient du texte.. et donc. compare des chaines de caractères
il faut donc convertir ton texte tapé en valeur avec la fonction CINT
VB:
Private Sub TextBox1_Change()
If Me.TextBox2 <> "" Then
    If CInt(Me.TextBox1) < CInt(Me.TextBox2) Then Me.Label1.BackColor = RGB(255, 0, 0)
    If CInt(Me.TextBox1.Value) = CInt(Me.TextBox2.Value) Then Me.Label1.BackColor = RGB(0, 255, 0)
    If CInt(Me.TextBox1.Value) > CInt(Me.TextBox2.Value) Then Me.Label1.BackColor = RGB(0, 0, 255)
End If
End Sub

Private Sub TextBox2_Change()
If Me.TextBox1 <> "" Then
    If CInt(Me.TextBox1) < CInt(Me.TextBox2) Then Me.Label1.BackColor = RGB(255, 0, 0)
    If CInt(Me.TextBox1.Value) = CInt(Me.TextBox2.Value) Then Me.Label1.BackColor = RGB(0, 255, 0)
    If CInt(Me.TextBox1.Value) > CInt(Me.TextBox2.Value) Then Me.Label1.BackColor = RGB(0, 0, 255)
End If
End Sub
Ou Multiplier par 1 comme le dit plus simplement @phlaurent55 que je salue :-D
 

Justfun

XLDnaute Nouveau
Je vous remercie pour vos réponses rapides :)
C'est effectivement ça.

Une autre petite question quand même si vous me le permettez?

Certes une textbox appelle un texte. Mais lorsque je copie A et B dans une cellule (A1 et B1 par exemple), puis que je fais la comparaison entre la valeur des cellules A1 et B1 ça marche.
Cela veut dire qu'Excel convertit le texte de la textbox en nombre?
 

Discussions similaires


Haut Bas