Additionner plusieurs TextBox
L
Bonjour à tous
Je vous remercie d'avance pour l'aide
Dans mon fichier ci joint je souhaiterai tout simplement additionner le contenu numérique des texBox et avoir le résultat dans la texBox "Total note"
Merci
g
Bonjour, Lynda , bonjour GMB
Pour l'addition de textbox plusieurs méthode.
Soit comme Gmb :
TextBox4 = Val(txteleve1) + Val(txteleve2) + Val(TextBox3)Soit avec la fonction CDbl :
Texbox4.Value = CDbl(txteleve1.Value) + CDbl(txteleve2.Value) + CDbl(TextBox3.Value)L
Bonjour à tous
Merci beaucoup solution trouver et les deux marchent
Big thanks
p
Bonjour,
Attention toutefois à certains effet non voulus, essentiellement dus à une mauvaise saisie de l'utilisateur.
Voir ici : http://faq.vb.free.fr/index.php?question=56
- La fonction Val() qui impose d'avoir un point (.) comme séparateur décimal et qui stoppe la conversion dès qu'elle rencontre un caractère non numérique. De ce fait, quand on lui demande de convertir la chaîne "15,3", elle renvoie le nombre 15 !
- Les fonctions Cxxx() (ex. CDbl(), CInt(), CLng(), CSng(), etc.) utilisent quand à elles, le séparateur décimal défini dans le panneau de configuration de Windows, et quand on leur demande de convertir une chaîne avec un autre séparateur, elles génèrent une erreur de type non conforme. Par exemple, si l'utilisateur a choisi la virgule comme séparateur et veut quand même utiliser le point du clavier numérique, ou bien, si les données sont stockées dans un fichier texte et qu'on les relit après avoir changé ledit séparateur.
Du coup, on peut également utiliser la fonction décrite dans le lien ci-dessus :
Function MyVal(Chaine As Variant) As Variant
' http://faq.vb.free.fr/index.php?question=56
Dim strTmp As String, charTmp As String, SepDecimal As String, SepMillier As String, i As Long
SepDecimal = Format$(0, ".")
SepMillier = Mid$(Format$(1000, "0 000"), 2, 1)
strTmp = ""
If IsNull(Chaine) Then
MyVal = Null
Exit Function
End If
For i = 1 To Len(Chaine)
charTmp = Mid$(Chaine, i, 1)
If Asc(charTmp) >= 48 And Asc(charTmp) <= 57 Then
' C'est un chiffre, on le traite.
strTmp = strTmp & charTmp
ElseIf charTmp = "+" Or charTmp = "-" Then
' Le signe...
strTmp = strTmp & charTmp
ElseIf charTmp = "," Or charTmp = "." Or charTmp = SepDecimal Then
' La virgule, le point ou un autre séparateur, même combat !
strTmp = strTmp & "."
ElseIf charTmp = " " Or charTmp = Chr$(160) Or charTmp = SepMillier Then
' Séparateur de milliers éliminé
Else
' Fin de la boucle au premier
' caractère non numérique comme le fait normalement
' la fonction Val().
Exit For
End If
Next
MyVal = Val(strTmp)
End FunctionUn peu longuette, mais, pour le coup, l'appel reste identique :
TextBox4.Value = MyVal(txteleve1.Text) + MyVal(txteleve2.Text) + MyVal(TextBox3.Text)