Passage en format monétaire difficile

Bonjour le Forum, je viens à nouveau demandé ton aide,

Je cherche à afficher un nombre au format monétaire dollar (exemple: "$ 2,00") dans une autre cellule, je j'utilise donc la fonction Format pour appliqué un format, mais rien à faire.

Cela fait quelques heures que je cherche et je cherche encore sur les wikis et forum mais tout ce que je trouve ne fonctionne pas de mon côté.

Je vous ai mis deux de mes multiples essais ci-dessous:

'Celui ci me retourne des euros sans les décimales

.Offset(0, 3).Value = Format(cellorigine.Offset(0, 13).Value, "$# ##0,00;-$# ##0,00") 

'------------------------
'Celui-ci m'affiche une erreur et je l'ai récupéré depuis les formats personnalisés d'excel

.Offset(0, 3).Value = Format(cellorigine.Offset(0, 13).Value, "_-[$$-en-US]* # ##0,00_ ;_-[$$-en-US]* -# ##0,00\ ;_-[$$-en-US]* " - "??_ ;_-@_ ") 

Merci d'avance pour votre aide,

Bonjour Retranix,

Il faut savoir que l'enregistreur de macros, n'enregistre pas correctement les séparations

Le bon format est

"#,##0.00$;-#,##0.00$"
Range("A1").Value = Format(1200.56, "#,##0.00$;-#,##0.00$")

@+

Bonjour Bruno, merci pour ta réponse!

En effet , ça s'affiche correctement maintenant sauf que la valeur passe en texte et je ne peux pas l'utiliser comme une valeur monétaire classique ( pas d'opération mathématiques par exemple )

Je tiens à préciser aussi que j'ai bien mes paramètres régionaux en France.

Re,

Ce n'est pas exprimé dans la demande initiale, mais j'aurais dû y penser

La seule solution est donc le format Américain avec le $ devant : "[$$-en-US]#,##0.00"

@+

Re,

Même résultat mais sans le symbole dollar cette fois-ci, je l'ai essayé aussi sous format régional ( " " pour espace de milliers et "," pour les décimal, il me semble) voici mes lignes:

.Offset(0, 3).Value = Format(15.2, "[$$-en-US]#,##0.00") ' Retourne 15,20 sous format texte

.Offset(0, 3).Value = Format(15.2, "[$$-en-US]# ##0,00") ' Retourne 15 sous format numérique

Je chercherai plus à avoir quelque chose du genre "$ 15,20" sous un format permettant d'utiliser la valeur pour faire des opérations ( c'est pour cela que je dis sous format monétaire".

Et désolé de ne pas avoir été clair.

a++

Re,

Quels sont le séparateurs régionaux sur votre PC ?

@+

Re,

"," pour les décimales et " " pour les séparateurs de milliers.

a++

Bonjour Retranix, Salut BrunoM45 ,

Sinon, pourquoi ne pas utiliser la propriété .numberformat ? Ca rajoute une ligne mais ca permet de dissocier l'opération d'affectation de la valeur de celle de la mise en forme.

.Offset(0, 3).Value = cellorigine.Offset(0, 13).Value
.Offset(0, 3).numberformat = "#,##0.00$;-#,##0.00$"

Il serait même possible de le faire à la main directement.

Cdlt,

Après encore quelques petites recherches, je viens de trouver *ENFIN*. La solution était donc de faire en cela en deux étapes de cette façon:

.Offset(0, 3).Value = cellorigine.Offset(0, 13).Value ' récupération de la valeur numérique

.Offset(0, 3).NumberFormat = "_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ "  ' conversion de la valeur numérique en format monétaire

J'ai récupérer le format en faisant l'action manuellement et en l'ayant enregistré avec une macro ( ça m'a donné un format légèrement différent de cela qu'on peut trouver dans la liste des formats, mais il fonctionne! )

Le problème en réalité était je pense que la fonction Format s'adapte mal à des séparateurs régionaux différents de ceux utilisés aux US.

Merci beaucoup Bruno pour ton aide.

a++

EDIT: Bonjour et Merci aussi 3GB, je t'ai loupé

Rechercher des sujets similaires à "passage format monetaire difficile"