Variable numérique à 2 décimales [Résolu]

Seppele 3 Messages postés samedi 20 mai 2006Date d'inscription 9 juillet 2007 Dernière intervention - 9 juil. 2007 à 21:04 - Dernière réponse : Seppele 3 Messages postés samedi 20 mai 2006Date d'inscription 9 juillet 2007 Dernière intervention
- 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.

Je vous remercie par avance.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Seppele 3 Messages postés samedi 20 mai 2006Date d'inscription 9 juillet 2007 Dernière intervention - 9 juil. 2007 à 22:36
3
Merci
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.)


 

Merci Seppele 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de Seppele
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 9 juil. 2007 à 21:14
0
Merci
Bonjour, je redirige vers vbfrance.com

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL
Commenter la réponse de jesusonline
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 9 juil. 2007 à 21:27
0
Merci
Salut,

Je ne sais pas si sous VBA cela existe, mais regarde la fonction : Round

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Commenter la réponse de cs_Exploreur
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 9 juil. 2007 à 21:36
0
Merci
"j'ai une somme dont le format est nombre à 2 décimales"
ça c'est l'affichage de la valeur, ne pas confondre avec la valeur en elle même.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Seppele 3 Messages postés samedi 20 mai 2006Date d'inscription 9 juillet 2007 Dernière intervention - 9 juil. 2007 à 22:07
0
Merci
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).

A vous lire

Merci.
Commenter la réponse de Seppele
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 9 juil. 2007 à 22:26
0
Merci
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.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 9 juil. 2007 à 22:27
0
Merci
ouh la les fautes de frappe, dur dur.
bah tu comprendras surement.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews

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.