Conversion de devise sur données saisies

Il est souvent pratique de pouvoir changer de devise dans un modèle financier. Pour les données calculées, il suffit de rajouter un coefficient de conversion pour que le calcul soit automatique. Mais pour les données saisies, comment faire ? En effet, il est impossible de mettre une valeur dans une cellule destinée à être saisie. je vous propose ici une petite recette permettant de réaliser cela simplement (enfin presque… !)

Voici ce que je vous propose de réaliser (en jaune, les données saisissables):

Conversion Devise

La recette se décompose en 4 étapes

  • Etape 1: Récupérer le dernier cours EUR / USD
  • Etape 2: Définir la devise et le coefficient de conversion en cours
  • Etape 3: Création du tableau de saisie
  • Etape 4: Créer une petite macro pour la conversion.

 

Etape 1: Récupérer le dernier cours EUR / USD

Nous allons commencer par importer le cours depuis le WEB en utilisant Power Query. Si vous avez Excel 2010 ou 2013, il faut au préalable télécharger Power Query. Dans notre cas présent, nous utilisons Excel 2016.

Dans le RUBAN: Données > Nouvelle requête > A partir d’autres sources > A partir du Web

Conversion Devise 01

Ensuite saisissez l’URL suivante: http://bourse.lefigaro.fr/devises-matieres-premieres/conversion-eur-usd/cours

Vous pouvez très bien en utiliser une autre si bon vous semble. Ensuite, cliquez sur OK.

Conversion Devise 02

Vous pouvez voir que trois tables sont proposées. Choisissez la Table 1, puis cliquez sur MODIFIER.

Conversion Devise 03

Nous allons à présent nettoyer le tableau pour obtenir uniquement ce qui nous intéresse, à savoir le cours du dollar. Pour cela, il faut tout d’abord supprimer les 5 lignes du bas (l’objectif est de garder uniquement la première ligne).

Conversion Devise 04

Ecrivez 5 pour supprimer les 5 lignes.

Conversion Devise 05

Ensuite, il faut supprimer toutes les colonnes sauf celle contenant USD. Pour cela, sélectionnez toutes les autres colonnes, puis cliquez sur Supprimez les colonnes.

Conversion Devise 06

Pour terminer, nous allons renommer la requête “CoursUSD” pour une meilleure lisibilité. Ensuite, il suffit de fermer et charger dans Excel.

Conversion Devise 07

Voici le résultat obtenu. A tout moment, vous pouvez réactualiser le taux en allant dans le ruban: Données > Actualiser tout

Conversion Devise 08

 

Etape 2: Définir la devise et le coefficient de conversion en cours

Pour cette seconde étape, nous allons définir deux champs essentiels:

  • Devise: Cela permet de savoir quelle devise est utilisée ;
  • Coefficient: Permet de définir la valeur qui servira à multiplier un montant pour obtenir l’autre devise.
    • Si nous sommes en EUR et que nous souhaitons passer en USD, alors il faut trouver le coefficient 1/Cours_USD
    • Si nous sommes en USD et que nous souhaitons passer en EUR, alors il faudra utiliser le coefficient correspondant au Cours_USD récupéré dans l’étape 1.

Veuillez remplir les cellules suivantes ainsi:

  • C1: Devise
  • C2: Coefficient
  • D1: EUR
  • D2: =SI($D$1=”EUR”;1/CoursUSD[USD];CoursUSD[USD])

Conversion Devise 09

Ensuite, il est important de créer des champs nommés que nous utiliserons plus tard.

Pour cela, allez dans la cellule D1 et en haut à gauche (cf. image ci-dessous), saisissez “Devise“.

Refaite la même chose avec la cellule D2 et en mettant “Coeff“.

Conversion Devise 10

 

Etape 3: Création du tableau de saisie

Vous pouvez maintenant créer le tableau comme la copie d’écran ci-dessous. La particularité ici est d’afficher la devise en utilisant le champ nommé Devise, créé dans l’étape précédente. Pour les autres cellules, il suffit de les remplir comme ci-dessous car aucune formule n’est à créer.

Conversion Devise 11

Nous devons à présent créer un nouveau champ nommé, “Zone_Saisie” qui sera utilisé dans l’étape 4. Pour cela, sélectionnez la zone jaune puis en haut à gauche, remplissez avec “Zone_Saisie”.

Conversion Devise 12

 

Etape 4: Créer une petite macro pour la conversion

Nous arrivons à la dernière étape qui consiste à créer une macro. Vous pouvez remarquer ci-dessous qu’elle est très simple.

Voici comment créer la macro:

  1. Utilisez le raccourci ALT+F11 pour ouvrir l’éditeur de Macro
  2. Dans la zone Projet (en haut à gauche, où on peut voir le nom “ThisWorkbook”), faites clic-droit et Insertion puis Module.
  3. Dans la nouvelle fenêtre, copiez le programme ci-dessous (entre les deux lignes horizontales) puis fermez l’éditeur de macro.

Conversion Devise 14


Sub Changer_Devise()

‘On fait un copie / collega spécial Valeur avec Addition
Range(“Coeff”).Select
Selection.Copy
Range(“Zone_Saisie”).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlMultiply, SkipBlanks:=False, Transpose:=False

‘On modifie la devise
If Range(“Devise”) = “EUR” Then
Range(“Devise”) = “USD”
Else
Range(“Devise”) = “EUR”
End If

‘On désactive le mode couper / coller
Application.CutCopyMode = False

End Sub


 

Enfin pour appeler la macro, insérez une image (que vous pouvez trouver sur Google) en allant dans le Ruban: Insertion > Illustrations > Images.

Ensuite, faites un clic-droit sur l’image puis cliquez sur Affecter une macro:

Conversion Devise 15

Cliquez sur “Changer_Devise” puis sur OK. Ainsi, vous affectez la macro créée à l’image. Il suffira ensuite de cliquer sur l’image pour modifier la devise.

Conversion Devise 16

 

 

Conclusion

La recette est terminée. Vous pouvez à présent la déguster en remplissant les cellules jaunes et en cliquant ensuite à plusieurs reprises sur l’image pour mettre à jour la devise. Vous remarquerez que vous pouvez saisir à tout moment un prix dans une des cellules jaunes et la conversion fonctionnera encore.

Saisie des prix en Euro:

Conversion Devise 17

Cliquez sur l’image et voici les prix en Dollar:

Conversion Devise 18

Attention, n’oubliez pas d’enregistrer au format .xlsm pour tenir compte des macros !

Et comme c’est mon jour de bonté, je vous joins le fichier que nous avons créé !

Conv_Devise.xlsm

One thought on “Conversion de devise sur données saisies

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *