IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Calcul entre textbox [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 25
    Par défaut Calcul entre textbox
    Bonjour ,
    lorsque je rentre une valeur dans une textbox j'ai se message d'erreur :
    Une exception non gérée du type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dll
    Informations supplémentaires : La conversion de la chaîne "" en type 'Integer' n'est pas valide.

    Merci de votre expertise



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Class Form1
     
        Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            Me.TextBox3.Text = CStr(CInt(Me.TextBox1.Text) * CInt(Me.TextBox2.Text))
        End Sub
     
        Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
            Me.TextBox3.Text = CStr(CInt(Me.TextBox1.Text) * CInt(Me.TextBox2.Text))
        End Sub
    End Class

  2. #2
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    D'une part tu n'est obligé de mettre tout les Sinon je ne pense pas que tu sois obligé de convertir en int pour effectuer une multiplication. Sauf si tu souhaite que ton résultat soit un entier et non un décimal?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 25
    Par défaut
    Bonjour ,

    merci de votre réponse , les valeurs sont des décimales.

  4. #4
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par subfestivus Voir le message
    Bonjour ,

    merci de votre réponse , les valeurs sont des décimales.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Class Form1
     
        Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            TextBox3.Text = TextBox1.Text * TextBox2.Text
        End Sub
     
        Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
            TextBox3.Text = TextBox1.Text *TextBox2.Text
        End Sub
    End Class
    Si tu souhaite arrondir ton résultat tu peux utiliser la fonction rond pour définir le nombre de chiffres après la virgule.
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 25
    Par défaut
    Bravo ,
    merci énormément _Ez3kiel

  6. #6
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Citation Envoyé par subfestivus Voir le message
    Bonjour ,
    lorsque je rentre une valeur dans une textbox j'ai se message d'erreur :
    Une exception non gérée du type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dll
    Informations supplémentaires : La conversion de la chaîne "" en type 'Integer' n'est pas valide.

    Merci de votre expertise



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Class Form1
     
        Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            Me.TextBox3.Text = CStr(CInt(Me.TextBox1.Text) * CInt(Me.TextBox2.Text))
        End Sub
     
        Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
            Me.TextBox3.Text = CStr(CInt(Me.TextBox1.Text) * CInt(Me.TextBox2.Text))
        End Sub
    End Class

    L'exception est dû au fait que Textbox1.Text ou Textbox2.Text est null lorsque tu passes dans l’événement, il faut que tu testes que la Textbox soit bien remplie, et également qu'elle puisse être castable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
        Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            Dim a As Integer
            Dim b As Integer
     
            If TextBox1.Text <> String.Empty And TextBox2.Text <> String.Empty Then
                If Integer.TryParse(TextBox1.Text, a) And Integer.TryParse(TextBox2.Text, b) Then
                    TextBox3.Text = CStr(a * b)
                End If
            End If
        End Sub
     
        Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
            Dim a As Integer
            Dim b As Integer
     
            If TextBox1.Text <> String.Empty And TextBox2.Text <> String.Empty Then
                If Integer.TryParse(TextBox1.Text, a) And Integer.TryParse(TextBox2.Text, b) Then
                    TextBox3.Text = CStr(a * b)
                End If
            End If
        End Sub
    Et sinon pour ton code, on peut optimiser un peu pour éviter de devoir coder en double ... (Et sachant que .TryParse testera aussi si le texte est vide ou non
    )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
        Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            MultiplierTextBox()
        End Sub
     
        Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
            MultiplierTextBox()
        End Sub
     
     
        Private Sub MultiplierTextBox()
            Dim a As Integer
            Dim b As Integer
     
     
                If Integer.TryParse(TextBox1.Text, a) And Integer.TryParse(TextBox2.Text, b) Then
                    TextBox3.Text = CStr(a * b)
                End If
     
        End Sub

    EDIT: S'il faut des décimal, il faudra remplacer Integer.TryParse par Decimal.TryParse et aussi changer le type de a et b.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] calcul de mois entre textbox en vba
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/11/2012, 17h49
  2. [XL-2003] Calcul entre textbox dans un formulaire
    Par jbelleng dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/07/2011, 14h38
  3. [WD-2003] Calcul entre plusieurs textbox
    Par vbword dans le forum VBA Word
    Réponses: 11
    Dernier message: 02/06/2010, 14h42
  4. Calcul entre deux dates heures
    Par Isa31 dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 31/03/2005, 13h17
  5. calcul entre 2 champs time
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 19/02/2003, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo