Monsieur Excel
Pour tout savoir faire sur Excel !

21 janvier 2008

Une macro de conversion d’euros

Il m’a plusieurs fois été demandé de développer des macros associées à la conversion d’euros en francs. J’ai même créé il y a quelques années un add-in spécialisé à cet effet.

La petite macro ci-dessous est très pratique pour convertir en francs des montants sélectionnés. Vous sélectionnez pour cela toutes les cellules concernées, quitte à effectuer des sélections multiples à l’aide de la touche [Ctrl]. Pour afficher l’équivalent en francs, il suffit d’exécuter la macro comme nous l'avons fait ci-dessous :

Nous voyons ci-dessus le résultat de l’exécution de la macro qui nous informe que les 2.300 euros sélectionnés valent au total 21.646,58 F.

Sub Conv_francs()
Dim Cell As Range
Dim Total As Double
For Each Cell In Selection
Total = Total + Cell.Value
Next Cell
MsgBox "Conversion : " & Application.Text(6.55957 *
Total, "# ##0.00"" ""F")
End Sub


Remarque 1 – La fonction texte() a été utilisée pour bien formater la valeur indiquée…

Remarque 2 – Il ne vous reste plus, à condition de l’avoir sauvegardée dans votre classeur de macros personnelles, qu’à associer cette macro à un bouton de la barre d’outils, ou à un raccourci, pour la rendre toujours disponible…

2 Commentaire(s):

  • J'ai fait sensiblement la même chose, mais j'ai préféré ajouter la fonction dans la barre d'état (sous la somme) et le résultat également.
    Ca marche, mais le résultat reste affiché lorsque je sélectionne une autre cellule, et la fonction n'est pas gardée en mémoire, je suis obligé de la resélectionner à chaque fois. Any idea ? d'avance merci.
    Ci-dessous les macros :
    Sub Workbook_Open()
    With Application.CommandBars("AutoCalculate").Controls.Add
    .Caption = "€ > F"
    .OnAction = "Fonction_Euro_Franc"
    End With
    End Sub
    -------------------------------
    Sub Fonction_Euro_Franc()
    ValeurE = Application.WorksheetFunction.Sum(ActiveWindow.RangeSelection)
    Application.StatusBar = Format(ValeurE, "# ##0.00 €") & " = " & Format((ValeurE * 6.55957), "# ##0.00 F")
    End Sub

    By Anonymous Anonyme, sur 8:49 AM  

  • La réponse se trouve dans mon message du 17 février 2008...

    By Blogger Hervé Thiriez, sur 11:37 AM  

Enregistrer un commentaire

<< Accueil