Somme de label fausse

Résolu
Signaler
Messages postés
21
Date d'inscription
mercredi 28 décembre 2011
Statut
Membre
Dernière intervention
30 décembre 2011
-
Messages postés
21
Date d'inscription
mercredi 28 décembre 2011
Statut
Membre
Dernière intervention
30 décembre 2011
-
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

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
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
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
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
Messages postés
21
Date d'inscription
mercredi 28 décembre 2011
Statut
Membre
Dernière intervention
30 décembre 2011

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)...
Messages postés
21
Date d'inscription
mercredi 28 décembre 2011
Statut
Membre
Dernière intervention
30 décembre 2011

Merci beaucoup pour votre aide d'une grande utilité dans l'avance de mon projet.