Seppele
Messages postés3Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention 9 juillet 2007
-
9 juil. 2007 à 21:04
Seppele
Messages postés3Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention 9 juillet 2007
-
9 juil. 2007 à 22:36
Bonsoir .
C'est une première pour moi, alors excusez moi si je me trompe.
Langage VBA pour Excel
Je vais simplifier le problème au maximum
Sur la feuille1, j'ai une somme dont le format est nombre à 2 décimales. On va dire 69.12. Première question, si je change le format à "Standard", la valeur de la cellule est de 69.1218. Pourquoi?
Puis, par le biais d'une macro, je cherche cette somme si diverses conditions sont réunies, et la retranscrit sur la feuille2.
Dim MonTotal as Single
MonTotal = 0 (pour initialiser)
MonTotal = Range("A1").Value ---> ce qui donne 69.1218
ActiveCell.Value( ) = MonTotal ---> ce qui donne 69.1218 + 4 chiffres, ce qui fait un nombre avec 8 décimales.
Donc si l'un ou l'une d'entre vous pouvait me donner une solution pour que le nombre de départ 69.12 soit le nombre que je retrouve à l'arrivée.
Seppele
Messages postés3Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention 9 juillet 2007 9 juil. 2007 à 22:36
ReBonsoir,
Je pense avoir trouvé la solution à mon problème.
Outils, Options, Calcul, puis j'ai coché Calcul avec la précision au format affiché, et visiblement celà fonctionne à merveille. Pour en être sûr, j'ai exécuté 3 fois ma macro.
Je vous remercie tous infiniment pour votre gentillesse.
(En espérant retrouver le chemin pour accéder à ce forum.)
Seppele
Messages postés3Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention 9 juillet 2007 9 juil. 2007 à 22:07
Bien, la fonction Round existe, mais mon problème ne consiste pas à arrondir nom nombre, mais à avoir ce même nombre à l'arrivée.
A l'attention de BruNews, Votre réponse m'intéresse. Comment se fait-il qu'en additionnant des chiffres à 2 décimales, je puisse avoir un résultat qui sur ma feuille1 se traduise par un nombre à 4 décimales simplement par le fait que je change le format de "nombre" à "standard". Et comment encore ce même nombre qui de 2 décimales passe à 4, peut encore passer à 8 décimales au cours de ma macro, car pendant cette macro le nombre que je reçois est bien 69.1218. (ce qui résoudrait la moitié du problème).
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 juil. 2007 à 22:26
Un nombre à 2 décimales n'existe pas plus qu'à 3 ou N décimales. Excel stocke sous le format DOUBLE précision (64 bits) dès que c'est un flottant.
Ce que tu vois sur la feuille Excel dépend seulement du format ce cellule choisi, c'est à dire le format d'affichage des valeurs.
Pour t'en convaincre, mets 69.1218 dans une cellule et règle format d'affichafe sur 2 chiffres après la virgule.
ensuite essaie ceci:
Sub tets()
Dim d As Double
d = ActiveCell.Value
Debug.Print d
Debug.Print ActiveCell.Text
End Sub
sortira bien:
69.1218
69.12
Pour concure, tu fais:
mavaleur = Val(cell.text)
et là tu auras bien ce que tu vois.