none
comparaison entre deux TextBox RRS feed

  • Question

  • Bonjour, 

    je cherche à comparer deux TextBox mais j'arrive pas à le faire comme je suis débutant, alors je serai econnaissant si quelqu'un peut me donner un coup de main
    voici mon code :

    If Val(TextBox1.Text) >= Val(TextBox42.Text) Then
                TextBox42.BackColor = Color.Red
            Else
                TextBox42.BackColor = Color.White()
            End If
    samedi 11 mai 2013 11:32

Réponses

  • Bonjour lotfibedui,

    Si tu utilises Val, on peux supposer que les valeurs sont numériques, et éventuellement avec décimales. Problème avec Val : il fonctionne avec le séparateur décimal US, cad le point. Avec le séparateur décimal français, la virgule :

    • Val ("1,1") = 1
    • Val ("1,2") = 1

    le test ne fonctionnera donc pas. A la place de Val utilises plutôt Cdbl ou CSng , qui tiennent compte des paramètres régionaux.


    Cordialement, Jacques


    • Modifié Jacques93 samedi 11 mai 2013 12:38
    • Marqué comme réponse Aurel Bera mercredi 15 mai 2013 12:03
    samedi 11 mai 2013 12:38
  • Question simple, réponse complexe (voire très complexe).

    Si je comprends bien, vous souhaitez comparer deux chiffres qui doivent être saisis dans deux textbox.

    Le premier problème est de convertir un string en ... chiffre. Et un chiffre, ca peut être un integer, un double, un decimal, etc.

    Décidons que cela doit être un decimal. Le meilleur moyen pour convertir un string en decimal, c'est d'utiliser la méthode statique TryParse de decimal. Donc on a un truc du genre :

    Dim valeur1 as Decimal
    If Not Decimal.TryParse(textbox1.Text, ref valeur1) Then ...'c'est pas cool'

    Faire idem pour le textbox2. Vous pouvez alors comparer tranquillement deux decimal (votre code va bien).

    Dernier petit problème : si vos chiffres comportent une virgule ou un point. Dans ce cas, pour le TryParse, vous devez spécifiez le style du chiffre et la culture.

    Bonne chance ;-)

     NB: aussi bizarre que cela puisse paraitre, c'est le genre de question que l'on peut utiliser pour un entretien d'embauche.


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    • Marqué comme réponse Aurel Bera mercredi 15 mai 2013 12:03
    dimanche 12 mai 2013 06:23
  • bonjour

    Tu trouveras beaucoup d’exemples dans les moteurs de recherche en cherchant textbox numérique.

    par exemple :

    Public Function Isnumber(ByVal KCode As String) As Boolean
        If Not Isnumeric(KCode) And KCode <> ChrW(Keys.Back) And KCode <> ChrW(Keys.Enter) And KCode <> "."c Then
    
            MsgBox("Please Enter Numbers only", MsgBoxStyle.OkOnly)
        End If
    End Function
    
    Private Sub txtBalance_KeyPress(ByVal sender As System.Object, ByVal e As 
    System.Windows.Forms.KeyPressEventArgs) Handles txtBalance.KeyPress
    
        If Not Isnumber(e.KeyChar) Then
            e.KeyChar = ""
        End If
    
    End Sub
    

    ici : http://stackoverflow.com/questions/9969824/vb-net-need-text-box-to-only-accept-numbers


    Cordialement
    Pascal
    http://www.scalpa.info


    • Modifié scalpa dimanche 12 mai 2013 16:32
    • Marqué comme réponse Aurel Bera mercredi 15 mai 2013 12:04
    dimanche 12 mai 2013 16:31

Toutes les réponses

  • Bonjour lotfibedui,

    Si tu utilises Val, on peux supposer que les valeurs sont numériques, et éventuellement avec décimales. Problème avec Val : il fonctionne avec le séparateur décimal US, cad le point. Avec le séparateur décimal français, la virgule :

    • Val ("1,1") = 1
    • Val ("1,2") = 1

    le test ne fonctionnera donc pas. A la place de Val utilises plutôt Cdbl ou CSng , qui tiennent compte des paramètres régionaux.


    Cordialement, Jacques


    • Modifié Jacques93 samedi 11 mai 2013 12:38
    • Marqué comme réponse Aurel Bera mercredi 15 mai 2013 12:03
    samedi 11 mai 2013 12:38
  • Question simple, réponse complexe (voire très complexe).

    Si je comprends bien, vous souhaitez comparer deux chiffres qui doivent être saisis dans deux textbox.

    Le premier problème est de convertir un string en ... chiffre. Et un chiffre, ca peut être un integer, un double, un decimal, etc.

    Décidons que cela doit être un decimal. Le meilleur moyen pour convertir un string en decimal, c'est d'utiliser la méthode statique TryParse de decimal. Donc on a un truc du genre :

    Dim valeur1 as Decimal
    If Not Decimal.TryParse(textbox1.Text, ref valeur1) Then ...'c'est pas cool'

    Faire idem pour le textbox2. Vous pouvez alors comparer tranquillement deux decimal (votre code va bien).

    Dernier petit problème : si vos chiffres comportent une virgule ou un point. Dans ce cas, pour le TryParse, vous devez spécifiez le style du chiffre et la culture.

    Bonne chance ;-)

     NB: aussi bizarre que cela puisse paraitre, c'est le genre de question que l'on peut utiliser pour un entretien d'embauche.


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    • Marqué comme réponse Aurel Bera mercredi 15 mai 2013 12:03
    dimanche 12 mai 2013 06:23
  • bonjour

    Tu trouveras beaucoup d’exemples dans les moteurs de recherche en cherchant textbox numérique.

    par exemple :

    Public Function Isnumber(ByVal KCode As String) As Boolean
        If Not Isnumeric(KCode) And KCode <> ChrW(Keys.Back) And KCode <> ChrW(Keys.Enter) And KCode <> "."c Then
    
            MsgBox("Please Enter Numbers only", MsgBoxStyle.OkOnly)
        End If
    End Function
    
    Private Sub txtBalance_KeyPress(ByVal sender As System.Object, ByVal e As 
    System.Windows.Forms.KeyPressEventArgs) Handles txtBalance.KeyPress
    
        If Not Isnumber(e.KeyChar) Then
            e.KeyChar = ""
        End If
    
    End Sub
    

    ici : http://stackoverflow.com/questions/9969824/vb-net-need-text-box-to-only-accept-numbers


    Cordialement
    Pascal
    http://www.scalpa.info


    • Modifié scalpa dimanche 12 mai 2013 16:32
    • Marqué comme réponse Aurel Bera mercredi 15 mai 2013 12:04
    dimanche 12 mai 2013 16:31
  • Bonjour,

    Il existe une multitude de façons à faire les vérifications, mais votre description de problème manque de détails; vos textbox vont-ils recevoir du texte ?

    Les vérifications peuvent se faire avec les expressions régulière, avec un simple if (attention à la "case"), avec l'exemple d'entrée au niveau du clavier (voir exemple ci-dessus), et j'en passe bien d'autres

    Nous attendons plus d'informations sur ce que vous recherchez a faire pour vous donner plus précisément la bonne information 


    Cordialement,

    dimanche 12 mai 2013 19:07
    Auteur de réponse
  • Pour info, IsNumeric utilise Double.TryParse en interne.

    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    lundi 13 mai 2013 05:52
  • vos textbox vont-ils recevoir du texte ?

    Forcement, la propriété Text d'un TextBox est un string.


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    lundi 13 mai 2013 05:53
  • Bonjour,

    Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.

    Cordialement,


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    lundi 13 mai 2013 10:15
  • vos textbox vont-ils recevoir du texte ?

    Forcement, la propriété Text d'un TextBox est un string.


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    Bonjour,

    Il est certain =)
    Mais c'est quand même plus simple a faire une comparaison avec des entiers qu'avec du texte majuscule, minuscule, UTF8(7), ... et j'en passe d'autre

     


    Cordialement,

    lundi 13 mai 2013 20:06
    Auteur de réponse
  • Bonjour,

    Pouvons-nous considérer que vous avez résolu votre problème avec les scénarios proposés ? Dans l'affirmative, pourriez-vous partager avec nous la solution, afin que d'autres personnes avec le même problème puissent profiter de cette solution ?

    Désormais, nous marquons les solutions proposées. N'hésitez pas à revenir et supprimer la réponse marquée si la solution n’est pas correcte. Merci !

    Cordialement,


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mercredi 15 mai 2013 12:04