Convertir la devise, Excel VBA
Voici un exemple détaillé de code VBA pour convertir des devises dans Excel. Ce code utilise des taux de change fixes (que vous pouvez modifier) pour effectuer la conversion de devise. Il sera également possible d’ajouter un module qui récupère les taux de change en temps réel via une API, mais pour l’instant, nous utiliserons un exemple simple avec des taux fixes.
Objectif :
Créer une fonction qui convertit une somme d’argent d’une devise à une autre (par exemple, de l’euro à l’USD).
- Ajouter un Module VBA
- Ouvrez Excel et appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
- Allez dans Insertion > Module pour créer un nouveau module.
- Copiez et collez le code ci-dessous dans ce module.
Code VBA pour convertir des devises :
Option Explicit ' Déclaration des variables globales pour les taux de change Dim tauxEuroUSD As Double Dim tauxEuroGBP As Double Dim tauxEuroJPY As Double Sub ConvertirDevise() ' Initialiser les taux de change (valeurs fictives) tauxEuroUSD = 1.1 ' Exemple: 1 EUR = 1.1 USD tauxEuroGBP = 0.85 ' Exemple: 1 EUR = 0.85 GBP tauxEuroJPY = 150 ' Exemple: 1 EUR = 150 JPY ' Variables locales pour les devises et les montants Dim montant As Double Dim deviseSource As String Dim deviseCible As String Dim resultat As Double ' Demander à l'utilisateur d'entrer la devise source, la devise cible et le montant deviseSource = InputBox("Entrez la devise source (EUR, USD, GBP, JPY) :") deviseCible = InputBox("Entrez la devise cible (EUR, USD, GBP, JPY) :") montant = InputBox("Entrez le montant à convertir :") ' Effectuer la conversion en fonction des devises choisies If deviseSource = "EUR" Then If deviseCible = "USD" Then resultat = montant * tauxEuroUSD MsgBox montant & " EUR = " & resultat & " USD" ElseIf deviseCible = "GBP" Then resultat = montant * tauxEuroGBP MsgBox montant & " EUR = " & resultat & " GBP" ElseIf deviseCible = "JPY" Then resultat = montant * tauxEuroJPY MsgBox montant & " EUR = " & resultat & " JPY" Else MsgBox "Devise cible non reconnue" End If ElseIf deviseSource = "USD" Then If deviseCible = "EUR" Then resultat = montant / tauxEuroUSD MsgBox montant & " USD = " & resultat & " EUR" ElseIf deviseCible = "GBP" Then resultat = (montant / tauxEuroUSD) * tauxEuroGBP MsgBox montant & " USD = " & resultat & " GBP" ElseIf deviseCible = "JPY" Then resultat = (montant / tauxEuroUSD) * tauxEuroJPY MsgBox montant & " USD = " & resultat & " JPY" Else MsgBox "Devise cible non reconnue" End If Else MsgBox "Devise source non reconnue" End If End Sub
Explication du Code :
Variables Globales :
- tauxEuroUSD, tauxEuroGBP, tauxEuroJPY : Ce sont les taux de change que vous définissez pour chaque devise par rapport à l’euro. Par exemple, 1 EUR = 1.1 USD, 1 EUR = 0.85 GBP, et 1 EUR = 150 JPY.
Fonction ConvertirDevise :
- demande des informations utilisateur : Les trois InputBox demandent à l’utilisateur de saisir :
- La devise source (par exemple, EUR, USD).
- La devise cible (par exemple, EUR, USD).
- Le montant à convertir.
Conditions de conversion :
- Le code vérifie quelle est la devise source (EUR, USD, etc.) et la devise cible sélectionnée.
- Ensuite, il applique le taux de change approprié pour faire la conversion, en multipliant le montant de la devise source par le taux de change.
- Une fenêtre MsgBox affiche le résultat de la conversion.
Exécution du code :
- Vous pouvez exécuter ce code en appuyant sur F5 dans l’éditeur VBA ou en associant cette macro à un bouton dans votre feuille Excel.
- Le programme demandera à l’utilisateur les devises et le montant à convertir, puis affichera le résultat dans une fenêtre de message.
Exemple d’Utilisation :
Si vous entrez les valeurs suivantes :
- Devise source : EUR
- Devise cible : USD
- Montant : 100
Le message affiché sera :
100 EUR = 110 USD
Cela est basé sur le taux de conversion 1 EUR = 1.1 USD.
Amélioration avec des taux de change dynamiques :
Vous pouvez aller plus loin en récupérant les taux de change en temps réel via une API comme Fixer.io ou OpenExchangeRates. Pour cela, vous devrez intégrer des appels HTTP via VBA pour obtenir les taux en temps réel et ajuster le code en conséquence. Si vous souhaitez une telle fonctionnalité, n’hésitez pas à demander plus de détails !