Convertir chiffre Euro en chiffre US

bonjour

je cherche a convertir un chiffre 1150500,85 en chiffre US 1,150,500.85 sur textbox et cellule

en vba

merci de votre aide

Bonsoir,

en déchiffrant le code de CECI peut-être allez vous avancer dans votre projet.

@ bientôt

LouReeD

Bonjour à vous deux. Une fonction toute simple devrait suffire

Function conversion(valeur As Double) As String
    Dim chaine As String, tablo() As String
    Dim entier As String, reel As String
    Dim i As Integer, compt As Integer

    chaine = CStr(valeur)
    tablo = Split(chaine, ",")
    reel = "." & tablo(1)

    If Len(tablo(0)) > 3 Then
        For i = Len(tablo(0)) To 1 Step -1
            compt = compt + 1
            If compt Mod 3 = 0 Then
                entier = Chr(44) & Mid(tablo(0), i, 1) & entier
            Else
                entier = Mid(tablo(0), i, 1) & entier
            End If
        Next i
    Else
        entier = tablo(0)
    End If
    If Left(entier, 1) = "," Then entier = Right(entier, Len(entier) - 1)
    conversion = entier & reel
End Function
22convertisseur.xlsm (21.24 Ko)

merci a tous

j'ai pu adapter et avec bien du mal ça fonctionne

Bonjour à tous,

on peut faire plus court :

Sub test()
    Dim a As Double
    a = 1150500.85
    MsgBox convert(a)
End Sub

Function convert(n As Double) As String
    convert = Replace(Format(n, "#,##0.00"), Chr(160), ",")
End Function

eric

Effectivement, c'est nettement mieux

pour moi cela ne fonctionne pas je part du format euro pour avoir US

1150500,85 en chiffre US 1,150,500.85

avec le votre c'est l'inverse

comment le modifier merci

bonjour,

ayant une version uk, je n'ai pas pu tester, mais la fonction personnalisée suivante devrait fonctionner.

Function formateurus(d)
    dg = Format(d, "#.##0,00")
    dg = Replace(dg, ".", " ")
    dg = Replace(dg, ",", ".")
    dg = Replace(dg, " ", ",")
    formateurus = dg
End Function

le résultat sera considéré comme une chaîne de caractères et ne pourra plus être utilisé pour faire des calculs

ne fonctionne pas ne veut rien dire.

Il serait temps de mettre un fichier avec ce que tu as fait, on ne sait même pas si tu passes bien un numérique à la fonction...
eric

bon voici une autre approche .en utilisant

    Application.DecimalSeparator = "."
    Application.ThousandsSeparator = ","
    Application.UseSystemSeparators = False

mais ça change tout le système

dans mon cas ça ne me dérange pas trop

bonjour eriiic

voici le test avec ton approche et merci deja de t'avoir intéressé a mon problème

mon séparateur étant le . je n'avais pas cette différence.

Dans ce cas mettre A3 au format Texte et :

Function convert(n As Double) As String
    convert = Replace(Replace(Format(n, "#,##0.00"), ",", "."), Chr(160), ",")
End Function

eric

Rechercher des sujets similaires à "convertir chiffre euro"