variable pour avoir deux chiffres après la virgule, y compris le dernier zéro

superbog

XLDnaute Occasionnel
Bonsoir à tous,

Une question sans doute simple pour vous. J'ai créé une macro qui me permet d'envoyer par email le montant d'un compte, qui peut être créditeur ou débiteur. Il s'agit d'euros indiqués sous la forme usuelle avec deux chiffres après la virgule (par exemple 356,80).
Le problème est que si le dernier chiffre est un zéro (comme dans mon exemple), la macro ne le transmet pas. Ainsi dans mon email il est écrit 356,8.
Comment faire pour que ce soit bien 356,80 qui apparaisse.

Je précise que le nombre se trouve dans une cellule "F39" au format monétaire -1 234,10
Dans la macro je déclare une variable
Code:
du as double
(pour info j'ai essayé avec string mais cela ne me va pas car j'ai une condition selon que la variable est ou non supérieure à 0.)
puis je précise dans la macro que
Code:
du = Format(Range("F39"), "#,##0.00")
enfin je l'intègre à l'email
Code:
  strbody = "bonjour" & vbNewLine & vbNewLine & _
              "Vous trouverez ci-joint un état financier de votre dossier laissant apparaitre un solde de " & du & " euros" & vbNewLine & _
              "" & vbNewLine & _
              "" & p & "" & vbNewLine & ""

je reçois l'email qui me zappe le zéro et qui m'indique un solde de 356,8 euros...

help, je crise

Tout fonctionne très bien SAUF ce truc de zéro qui m'énerve


Merci d'avance
 

Dranreb

XLDnaute Barbatruc
Re : variable pour avoir deux chiffres après la virgule, y compris le dernier zéro

Bonsoir.
La fonction Format renvoie un String. Ça ne sert donc à rien de l'affecter à un Double: Ça le reconvertit en Double !
Faites Dû = Range("F39") si vous voulez, mais surtout …un solde de " & Format(Dû, "0.00") & " € etc.

Remarque: Il serait plus logique de déclarer Dû As Currency plutôt que As Double
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : variable pour avoir deux chiffres après la virgule, y compris le dernier zéro

Bonsour®

essayez :
Range("F39").NumberFormat="#,##0.00"

puis :
strbody = "bonjour" & vbNewLine & vbNewLine & _
"Vous trouverez ci-joint un état financier de votre dossier laissant apparaitre un solde de " & Range("F39").Text & " euros" & vbNewLine & _
"" & vbNewLine & _
"" & p & "" & vbNewLine & ""
 

Marc L

XLDnaute Occasionnel
Bonjour !

Si la valeur numérique est déjà formatée dans la cellule,

il suffit juste d'utiliser sa propriété [highlight]Text[/code] !

(Edit : trop tard Modeste a été plus rapide …)

_______________________________________________________________________________
Merci de cliquer sur J'aime ce post en bas à gauche de chaque message ayant aidé …

_______________________________________________________________________________
Je suis Paris, Charlie, Bruxelles, …

 

superbog

XLDnaute Occasionnel
Re : variable pour avoir deux chiffres après la virgule, y compris le dernier zéro

merci à tous

Après divers essais, voici la solution qui fonctionne

je supprime la variable.

Code:
strbody = "bonjour" & vbNewLine & vbNewLine & _
              "Vous trouverez ci-joint pour information un état financier de votre dossier laissant apparaître un solde créditeur de " & Format(sh1.Range("F39"), "0.00") & " euros" & vbNewLine & _
              "" & vbNewLine & _
              "" & p & "" & vbNewLine & _
              "" & vbNewLine & ""

vous êtes géniaux
 

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG