Somme avec dicimal ? [Résolu]

Messages postés
4
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
8 mars 2008
- - Dernière réponse : hish24
Messages postés
4
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
8 mars 2008
- 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 
A voir également:

Votre réponse

8 réponses

Meilleure réponse
Messages postés
17
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
6 mars 2008
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=-

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 87 internautes nous ont dit merci ce mois-ci

Commenter la réponse de keke4483
Messages postés
4
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
8 mars 2008
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


 

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 87 internautes nous ont dit merci ce mois-ci

Commenter la réponse de hish24
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
21
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
Messages postés
4
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
8 mars 2008
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
16
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
16
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
16
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
Messages postés
4
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
8 mars 2008
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.