Faire un calcul meme si textbox vide

Résolu
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 - 22 janv. 2009 à 09:34
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 - 22 janv. 2009 à 11:40
bonjour
j'ai se code dans un textbox pour calculer un prix.
mais comment faire le calcul meme si un des textbox et vide,car la ça me fait des erreurs
de calcul

PrivateSub txbPrixR‚el_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txbPrixR‚el.TextlblPrixtot.Text = CDbl(txbPrixR‚el.Text) - CDbl(txbCommune.Text) - CDbl(txbAutreCE.Text) - CDbl(txbCafBV.Text) - CDbl(txbMSA.Text) & " ?"

EndSub

merci
petchy

7 réponses

cs_stevbzh Messages postés 7 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 3 février 2009 1
22 janv. 2009 à 10:34
Il me semble que le principal problème soit que ta condition s'active lorsque le texte de ton textbox change, or ici tu le laisse vide. Malgré tout si cela marche, je vois deux solution:

 - tu met 0 en valeur par défaut de ton textbox
 - contrôle : if tonTextBox .text is nothing   (ou tonTextBox.text = "") then
                        tonTextBox.text = 0
                  end if

dernière chose: vérifie que tu puisse calculer à partir de valeur "string", si ce n'est pas le cas Float est ton ami !

Stevbzh
3
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
22 janv. 2009 à 11:26
ou l'inverse hein....





    Function mCDbl(ByRef sString As String) As Double
        If


sString


.Length = 0 Then
            Return 0.0#
        Else
            Return Convert.ToDouble(


sString)




        End If
    End Function
3
cs_stevbzh Messages postés 7 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 3 février 2009 1
22 janv. 2009 à 10:41
je m'excuse je n'avais pas vu le Cdbl, reste sur la première idée !
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
22 janv. 2009 à 10:49
salut,
CDBL ne fonctionne pas sur un vide, seul VAL sait le faire mais ne prend pas les décimaux

tu peux donc te faire ta fonction perso

    Function mCDbl(ByRef oTBox As TextBox) As Double
        If (oTBox Is Nothing) OrElse (oTBox.Text.Length = 0) Then
            Return 0.0#
        Else
            Return Convert.ToDouble(oTBox.Text)
        End If
    End Function

plus qu'à remplacer :
lblPrixtot.Text = String.Format("{0} €", mCDbl(txbPrixR, el.Text) - mCDbl(txbCommune.Text) - mCDbl(txbAutreCE.Text) - mCDbl(txbCafBV.Text) - mCDbl(txbMSA.Text))

ps : tu es sûr que tu as un control nommé

txbPrixR,el

  ?...


Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 3
22 janv. 2009 à 11:13
Re


PCPT j'essaye d'appliquer ton code,car cela m'éviterais de mettre du code en plus,en mettant "if textbox ="" then........."
mais j'ai une erreur








Une valeur de type


'String' ne peut pas etre convertie en 'System.Windows.Forms.TextBox'.

petchy
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
22 janv. 2009 à 11:24
oups ma faute oui, j'ai voulu aler trop vite. çà saute aux yeux pourtant

dans ta ligne d'appel (

lblPrixtot.Text =...

), enlève tous les ".text"
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 3
22 janv. 2009 à 11:40
super,merci
@ plus
petchy
0
Rejoignez-nous