Faire un calcul meme si textbox vide [Résolu]

cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 22 janv. 2009 à 09:34 - Dernière réponse : cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention
- 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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_stevbzh 7 Messages postés mercredi 10 octobre 2007Date d'inscription 3 février 2009 Dernière intervention - 22 janv. 2009 à 10:34
3
Merci
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

Merci cs_stevbzh 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_stevbzh
Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 22 janv. 2009 à 11:26
3
Merci
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

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de PCPT
cs_stevbzh 7 Messages postés mercredi 10 octobre 2007Date d'inscription 3 février 2009 Dernière intervention - 22 janv. 2009 à 10:41
0
Merci
je m'excuse je n'avais pas vu le Cdbl, reste sur la première idée !
Commenter la réponse de cs_stevbzh
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 22 janv. 2009 à 10:49
0
Merci
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 
Commenter la réponse de PCPT
cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 22 janv. 2009 à 11:13
0
Merci
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
Commenter la réponse de cs_petchy
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 22 janv. 2009 à 11:24
0
Merci
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"
Commenter la réponse de PCPT
cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 22 janv. 2009 à 11:40
0
Merci
super,merci
@ plus
petchy
Commenter la réponse de cs_petchy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.