hish24
Messages postés4Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 8 mars 2008
-
2 mars 2008 à 21:25
hish24
Messages postés4Date d'inscriptionsamedi 22 décembre 2007StatutMembreDerniè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
hish24
Messages postés4Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 8 mars 2008 7 mars 2008 à 10:20
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
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 3 mars 2008 à 08:40
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
hish24
Messages postés4Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 8 mars 2008 5 mars 2008 à 21:46
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 7 mars 2008 à 11:33
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
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 7 mars 2008 à 11:35
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
hish24
Messages postés4Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 8 mars 2008 8 mars 2008 à 18:08
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