Bonjour,
Dans le cadre de retraitement de données, j'ai besoin de convertir des montants en devise locale. Pour celà, je dispose de taux de change mensuels que j'inclue dans mes macros de retraitement de fichier. Les taux de change que l'on me donne sont fixés au 6ème chiffre après la virgule. Ci-dessous mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'Montant en Dim ClosingRate As Single, AverageRate As Single, EURAmount As Range ClosingRate = Round(CDbl(InputBox("Entrez le taux de clôture CZK => EUR (Séparateur de décimal => virgule)", "Définition du taux de clôture")), 6) AverageRate = Round(CDbl(InputBox("Entrez le taux moyen CZK => EUR (Séparateur de décimal => virgule)", "Définition du taux moyen")), 6) For Each EURAmount In .Range("F2:F" & BSE) EURAmount.Value = EURAmount.Offset(0, -1).Value / ClosingRate Next EURAmount For Each EURAmount In .Range("F" & PNLS & ":F" & PNLE) EURAmount.Value = EURAmount.Offset(0, -1).Value / AverageRate Next EURAmount
La variable "BSE" a bien été définie en amont. Mon problème dans ce cas concret, mes deux taux de change sont 24,223000 et 24,654205.
Lors de la vérification de mes données après exécution de ma macro, voilà les deux taux de change ressortis : 24,2229995727539 et 24,6542053222656.
Cela peut vous sembler idiot car l'écart global généré est de 0,05 mais ce n'est pas acceptable par le logiciel dans lequel je charge ces données. Pourriez-vous SVP m'aider à trouver une solution pour palier à ce souci ?
D'avance merci !
Partager