Somme avec dicimal ? [Résolu]

hish24 4 Messages postés samedi 22 décembre 2007Date d'inscription 8 mars 2008 Dernière intervention - 2 mars 2008 à 21:25 - Dernière réponse : hish24 4 Messages postés samedi 22 décembre 2007Date d'inscription 8 mars 2008 Dernière intervention
- 8 mars 2008 à 18:08
bonsoir tout le monde j'est un probléme qui est le suivant j'ai des text box qui recoivent des chiffres avec dicimale ca s'est simple
mais quand je faire la somme de ces textbox dans ma text box55(total) !il n'affiche pas la dicimale seul les chiffres avant la vergule sont affiché :voici le code :

 Dim k As Integer
With userform1
.TextBox55.Value = 0
For k = 18 To 34
TextBox55 = TextBox55.value + Val(.Controls("TextBox" & k).value)
Next k
End With

merci pour tout intiative
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
keke4483 17 Messages postés mercredi 13 octobre 2004Date d'inscription 6 mars 2008 Dernière intervention - 2 mars 2008 à 21:40
3
Merci
Salut,
C'est surement à cause de la fonction Val() qui retourne une valeur entière utilise plutot une fonction genre CSng() ou CDbl()

Bon courage.

-=KeKe4483=-

Merci keke4483 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de keke4483
Meilleure réponse
hish24 4 Messages postés samedi 22 décembre 2007Date d'inscription 8 mars 2008 Dernière intervention - 7 mars 2008 à 10:20
3
Merci
bonsoir voici le nouveau code :

 Dim k As Integer
With userform1
.TextBox55.Value = 0
For k = 18 To 34
TextBox55.Value = TextBox55 + CSng(.Controls("TextBox" & k).Text)
Next k
End With


merci d'avoir repondu et je compte beucoup sur votre aide


 

Merci hish24 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de hish24
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 3 mars 2008 à 08:40
0
Merci
Bonjour,

Val n'est bon que si le séparateur décimal est le point

Dans ce cas (si tu utilises la virgule) :

- soit tu utilises alors Ccur (voir ce mot dans ton aide en ligne)
- soit tu remplaces d'abord la virgule par le point (fonction Replace) et tu utilises Val
Commenter la réponse de jmfmarques
hish24 4 Messages postés samedi 22 décembre 2007Date d'inscription 8 mars 2008 Dernière intervention - 5 mars 2008 à 21:46
0
Merci
merci pour tout ces precieuse informations mais un petit probléme , les chiffres derriere la vergule sont nombreu en plus erreur 13
merci pour plus d'aide
Commenter la réponse de hish24
cs_MPi 3875 Messages postés mardi 19 mars 2002Date d'inscription 17 août 2018 Dernière intervention - 5 mars 2008 à 23:36
0
Merci
Où en es-tu rendu avec ton code ?
Qu'as-tu changé ?

L'erreur 13 veut dire que tu utilises le mauvais type de données. Comme additionner du texte, disons...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi
cs_MPi 3875 Messages postés mardi 19 mars 2002Date d'inscription 17 août 2018 Dernière intervention - 7 mars 2008 à 11:33
0
Merci
Pour les chiffres derrière la virgule, tu peux changer l'affichage en utilisant Format
Textbox55.Text = Format(Textbox55.text, "0.00")
pour avoir 2 décimales

Tu pourrais aussi regarder du côté de Round et voir si ça peut faire ton affaire.

Pour l'erreur 13, essaie comme ceci
TextBox55.Value = CSng(TextBox55.Text) + CSng(.Controls("TextBox" & k).Text)
Sinon, il faudrait savoir ce que contiennent tous les textbox de 18 à 34
Il se peut qu'une des valeurs ne soit pas considérée comme un chiffre. Ça pourrait être un point au lieu d'une virgule ou l'inverse, selon le cas... ou autre chose...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi
cs_MPi 3875 Messages postés mardi 19 mars 2002Date d'inscription 17 août 2018 Dernière intervention - 7 mars 2008 à 11:35
0
Merci
De plus, si les nombres peuvent être grands, tu devrais utiliser CDbl au lieu de CSng

Et tu pourrais utiliser une variable plutôt que de mettre le résultat de l'addition directement dans le textbox55. Une fois la boucle terminée, tu mets le résultat dans ce textbox en utilisant la fonction Format comme expliquée...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi
hish24 4 Messages postés samedi 22 décembre 2007Date d'inscription 8 mars 2008 Dernière intervention - 8 mars 2008 à 18:08
0
Merci
merci pour tout j'est reussi a avoir le format disiré grace a vaux conseilles , en plus pour l'erreur 13 je croix que le probléme venait des textbox vide alors j'est affecté un "0" au demmarage de l' usf  a tout les textbox est c'est reglé , merci encore et a une autre fois
Commenter la réponse de hish24

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.