Récupérer la devise d'un format personnalisé

Bonjour,

Depuis un outil statistique, j'exporte des données de CA en devise étrangère.

Voilà le format donné par Excel :

# ##0" EUR";-# ##0" EUR";# ##0" EUR";@

Pour l'Euro, on retrouve donc ce format : 25 EUR par exemple.

Excel considère ce format comme un nombre et je voudrais récupérer le type de devise sur chacune de mes lignes. En gros, selon la devise indiquée, je vais récupérer tel ou tel taux de change. Avec du texte, j'aurais fais un

droite(C2;3)

pour copier la devise mais là, je bloque.

Je vous ai mis un fichier test en pièce jointe pour vous montrer le format.

Merci.

35devise.xlsx (8.22 Ko)

Bonsoir,

Un fonction personnalisée :

Function DVSISO(c As Range) As String
    Dim tx
    Application.Volatile
    tx = Split(c.Text)
    DVSISO = Trim(tx(UBound(tx)))
End Function

qui te récupèrera le code ISO de la devise...

S'utilise comme toute autre fonction Excel. Code dans Module1

Pour récupérer le montant, besoin de rien en principe : =C5 fait l'affaire, après avoir pris soin cependant de mettre un format de cellule autre que Standard (sans quoi Excel affecte aussi le format personnalisé...)

Si ce point te pose problème, on peut bâtir une fonction de récupération du montant sans la devise...

Cordialement.

Excellent, merci beaucoup. Je vais tester sur mon fichier complet très rapidement puis reviendrai ici faire un retour.

Tout est OK, merci encore.

Bonjour,

Mince, ça ne fonctionne pas dans tous les cas finalement.

Pour les livres ou dollars US, la devise n'est pas renseignée avec 3 lettres mais avec le signe $ ou £ (format par défaut de mon outil statistique).

On peut y faire quelque chose ?

Merci.

Bonjour,

Vois ainsi :

Function DVSISO(c As Range) As String
    Dim tx, i%
    Application.Volatile
    tx = c.Text
    If IsNumeric(Left(tx, 1)) Then
        tx = Split(tx)
        DVSISO = Trim(tx(UBound(tx)))
    Else
        i = 1
        Do Until IsNumeric(Mid(tx, i + 1, 1))
            i = i + 1
        Loop
        DVSISO = Trim(Left(tx, i))
    End If
End Function

Cordialement.

Ça règle le problème à 99%

En fait, ça prend en compte le signe "moins" quand j'ai un chiffre d'affaires négatif.

Est-ce possible de l'exclure ?

On va y arriver !

    '...
    Application.Volatile
    tx = Replace(c.Text, "-", "")
    '...

C'est tout bon !

Chapeau, RAS, mes félicitations !!!

Je vais tester avec l'ensemble des données.

Excel est le seul outil que j'ai pour faire mes analyses, l'outil statistique me réserve des mauvaises surprises et le service IT ne peut rien faire.

Alors : merci beaucoup !

Bonne continuation... A la prochaine !

Rechercher des sujets similaires à "recuperer devise format personnalise"