Formatage nombre [Résolu]

Signaler
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
-
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
-
Voila j'ai un probleme que je comprend pas
je prend dans une base acces une donnee monetaire qui est de 100
je veux qu'elle soit comme sa  100,00
et le pas moyen je fait toto = format(toto,"##0.00")
et il veux pas
pas moyen , la donnee dans acces est mise sous  virgules avec 2 nombres
et j'arrive pas
Merci pour votre aide

6 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
Salut,

ça dépend du type de donnée attribué à toto.
Essaie de passer par une seconde variable :

Sub Test()
    Dim toto As Currency, toto2 As String
    
toto =  100 ' 100 (OU ton record)
toto2 = Format(toto, "##0.00")
' *** qui dit Format, dit type ~String~ (pour la variable
'     réceptionnant le résultat, ici toto2)

MsgBox toto2

End Sub

~<small> Mortalino </small>~

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Round pourrait peut-être aussi fonctionner
toto = Round(toto, 2)
ou
toto = Round(CSng(toto), 2)

Si tu veux un signe monétaire
toto = Format(toto, "currency")

Et comme dit Mortalino, ça peut aussi dépendre du type de la donnée donnée d'origine, c'est pourquoi j'utilise le CSng pour forcer un nombre à décimale.

MPi
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
6
Salut,
6078 MPi  ça ne marchera pas avec Round, cela ne formate pas l'affichage:

exemple de résultat avec round :

toto = 100.2635489
toto = Round(CSng(toto), 2)=100.26

toto = 100.99
toto = Round(CSng(toto), 2)=100

toto = 100
toto = Round(CSng(toto), 2)=100

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
6
Pardon

toto = 100.99
toto = Round(CSng(toto), 2)=101

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Effectivement, si toto = 100, la réponse sera 100
Donc, j'aurais dû faire le test avant de répondre...désolé

mais je récupère 100,26 et 100,99 dans les 2 autres exemples, avec ou sans le CSng

MPi
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
6
Oui effectivement, j'aurais du faire le test avant moi aussi! Ou faire attention à ce que j'ai mis!

toto = 100.991222
toto = Round(CSng(toto), 2)=100.99

toto = 100.0002
toto = Round(CSng(toto), 2)=100

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas: