macro pour convertion francs en euros

Michou9

XLDnaute Occasionnel
Bonjour


Je n’ai pas une très grande expérience dans la réalisation de macros sous Excel.

Je souhaite réaliser une macro pourtant toute simple, j’essaye donc la méthode par enregistrement directe, mais je n’y arrive pas.

J’ai un tableau où je dois rentrer quelques fois des prix en Francs

Je souhaite les mettre directement en Euros.

Je pourrais utiliser une colonne pour établir cette conversion, mais comme ma feuille est déjà très large, cela m’embête de perdre de la place pour rien.

Je souhaite donc réaliser une macro qui ferait :

« F2 » « début » « = » « fin » « /6.55957 »

Qui transformerait donc par ex : 500 F en =500/6.55957 pour obtenir 76 €

Quand je réalise cette macro avec l’enregistrement directe
Et que veux modifier par ex 700 F
La macro remplace 700 F par =500/6.55957 soit 76 € et non par =700/6.55957

Bien que je ne tape pas 500 quand je réalise l’enregistrement de la macro, puisque ce montant est déjà rentré et que je ne fait en fait que de modifier la cellule, l’enregistrement de la macro ne fait que d’enregistrer le résultat et non la mémorisation de ce que je fais.

Merci d’avance pour une aide
 

Michou9

XLDnaute Occasionnel
Re : macro pour convertion francs en euros

Re

Non une macro serait pour moi le plus pratique, étant donné que dans la colonne prix il y a seulement que quelques prix en francs

Le fait de taper sur "Ctrl Alt E" juste après avoir rentré un prix en franc serait parfait, encore faut-il pouvoir réaliser cette macro

Cette macro serait là pour éditer la valeur et lui rajouter "/6.55957"
ce qui me donnerai un prix en euro
 

ROGER2327

XLDnaute Barbatruc
Re : macro pour convertion francs en euros

Bonjour Michou9, mutzig
Code:
[COLOR="DarkSlateGray"][B]Sub FRF_EUR()
Dim oCel As Range
   For Each oCel In Selection.Cells
      If Not IsEmpty(oCel) And IsNumeric(oCel.Value) Then oCel.Value = oCel.Value / 6.55957
   Next oCel
End Sub[/B][/COLOR]
divise toutes les cellules à contenu numérique de la sélection courante par 6.55957.

Code:
[COLOR="DarkSlateGray"][B]Sub EUR_FRF()
Dim oCel As Range
   For Each oCel In Selection.Cells
      If Not IsEmpty(oCel) And IsNumeric(oCel.Value) Then oCel.Value = oCel.Value * 6.55957
   Next oCel
End Sub[/B][/COLOR]
fait l'opération inverse, i.e. multiplie toutes les cellules à contenu numérique de la sélection courante par 6.55957.​
ROGER2327
#3150
 

Michou9

XLDnaute Occasionnel
Re : macro pour convertion francs en euros

Bonjour ROGER2327

Un grand merci

C'est exactement ce que je voulais

Une petite macro et hop le prix en Franc se retrouve en Euro

J'aurais préféré que l'opération reste visible dans la cellule
Comme cela en la pointant je pourrais toujours pu visionner le prix initial en Franc
Soit plutôt que d'avoir 15.24 €, que la cellule conserve l'opération qui à permis d'arriver à cette somme, soit "=100/6.55957" tout en ayant bien sûr 15.24 € à l'écran

Mais c'est peut-être pas possible ?

en tout cas, cela me va très bien

merci

Cordialement
 

ROGER2327

XLDnaute Barbatruc
Re : macro pour convertion francs en euros

Re...
Essayez ceci :
Code:
[COLOR="DarkSlateGray"][B]Sub EUR_FRF()
Dim oCel As Range
   For Each oCel In Selection.Cells
      If Not IsEmpty(oCel) And IsNumeric(oCel.Value) Then oCel.FormulaR1C1 = "=" & oCel.Value & "/6.55957"
   Next oCel
End Sub[/B][/COLOR]
ROGER2327
#3158
 

ROGER2327

XLDnaute Barbatruc
Re : macro pour convertion francs en euros

Re...
Tant mieux si cela vous convient.
Une remarque tout de même : il peut y avoir des problèmes avec le séparateur décimal.
Par exemple, la virgule étant définie comme séparateur décimal dans les Options régionales et linguistiques de Windows et le point comme séparateur décimal dans les Options d'Excel, il conviendra d'écrire :
Code:
[COLOR="DarkSlateGray"][B]Sub EUR_FRF()
Dim oCel As Range
   For Each oCel In Selection.Cells
      If Not IsEmpty(oCel) And IsNumeric(oCel.Value) Then oCel.FormulaR1C1 = "=" & [COLOR="Sienna"]Replace(oCel.Value, ",", ".")[/COLOR] & "*6.55957"
   Next oCel
End Sub

Sub FRF_EUR()
Dim oCel As Range
   For Each oCel In Selection.Cells
      If Not IsEmpty(oCel) And IsNumeric(oCel.Value) Then oCel.FormulaR1C1 = "=" & [COLOR="Sienna"]Replace(oCel.Value, ",", ".")[/COLOR] & "/6.55957"
   Next oCel
End Sub[/B][/COLOR]
ROGER2327
#3159
 

Michou9

XLDnaute Occasionnel
Re : macro pour convertion francs en euros

Re

Effectivement, j'avais pas essayé avec une valeur décimale
et sa posait problème

Mais avec votre nouvelle macro, que la somme comporte ou pas des centimes, cela va très bien.

Heureusement que vous avez pensé à cela!

Je n'ai pu que à vous remercier une nouvelle fois.

Je vais essayé maintenant d'analyser toutes ces macros, pour les comprendre !

Cordialement
 

Discussions similaires

Réponses
26
Affichages
527

Statistiques des forums

Discussions
312 555
Messages
2 089 544
Membres
104 208
dernier inscrit
laura29180