Somme de label fausse

Résolu
liz739 Messages postés 21 Date d'inscription mercredi 28 décembre 2011 Statut Membre Dernière intervention 30 décembre 2011 - 28 déc. 2011 à 22:24
liz739 Messages postés 21 Date d'inscription mercredi 28 décembre 2011 Statut Membre Dernière intervention 30 décembre 2011 - 29 déc. 2011 à 14:13
Bonjour,

lorsque j'additionne 2 montants situés dans des labels le résultat (dans un label) est faux (10+0.0625=100.06)
[le résultat doit être a 2 chiffres après la virgule].
voila ce que j'ai fait :

Dim Toto As Single
Toto = UserForm1.Montant.Caption + UserForm1.Delai.Caption
UserForm1.Montant_Total.Caption = Format(Toto, "# ##0.00")

si quelqu'un peut m'indiquer d'ou vient l'erreur.

merci d'avance pour votre aide.
liz739

4 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
29 déc. 2011 à 11:09
dépend de tes regional settings.

la logique voudrait que l'on ai :

Dim Toto As Double
    Toto = ToDbl("10") + ToDbl("0,0625")
    MsgBox FormatNumber(Toto, 2)


Avec Dbl :

Private Function ToDbl(ByVal vsInput As String) As Double
    If IsNumeric(vsInput) Then
        ToDbl = CDbl(vsInput)
    Else
        ToDbl = Val(vsInput)
    End If
End Function


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
29 déc. 2011 à 07:58
String + String ?

pas top...

une concaténation est opérée...

faire un transtypage :

Dim Toto As Double
    Toto = Val("10") + Val("0.0625")
    MsgBox FormatNumber(Toto, 2)


pas bon non plus de forcer le format d'affichage avec "# ##0.00"
utiliser FormatNumber, qui se conformera aux regional settings.



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
liz739 Messages postés 21 Date d'inscription mercredi 28 décembre 2011 Statut Membre Dernière intervention 30 décembre 2011
29 déc. 2011 à 09:33
Merci bien !
comme j'ai plusieurs valeurs que l'on peut afficher dans Delai et Caption j'ai repris la meme bas en modifiant avec val. mais les chiffres après la virgule ne sont pas pris en compte (ceux de 10.1 par exemple et 0.0625)...
0
liz739 Messages postés 21 Date d'inscription mercredi 28 décembre 2011 Statut Membre Dernière intervention 30 décembre 2011
29 déc. 2011 à 14:13
Merci beaucoup pour votre aide d'une grande utilité dans l'avance de mon projet.
0
Rejoignez-nous