Conversions en euros de montants

Bonjour à tous,

Dans le but d'optimiser mon fichier, j'aurai aimé créer un VBA pour convertir les montants ici en roubles, en euros.

L'idée serait de pouvoir passe des roubles en euros, puis des euros en roubles facilement pour simplifier la lecture de mes interlocuteurs.

Pensez-vous que cela est possible? Mon fichier initial contient de nombreuses feuilles quasi identiques (seul le nombre de lignes change) et je vous ai mis en pièce-jointe un fichier en exemple.

J'ai quelques bases en VBA, mais je ne sais vraiment pas comment commencer...

Merci d'avance pour votre aide.

Alexandre

12review-example.xlsx (18.90 Ko)

Bonjour,

Essai d'adapter le code suivant à ton cas !

Sub Roubles()

    ThisWorkbook.Sheets("feuil1").Activate ' Active la feuille "feuil1"

Dim x As Long

    x = Range("A65536").End(xlUp).Row ' trouve la dernière ligne remplie de la colonne A en partant du bas et stocke sa position dans x

    Range("B1").Select ' Selectionne B1

    ActiveCell.FormulaR1C1 = "=RC[-1]*2" ' la celulle de la colonne précédente mais sur la même ligne est multipliée par deux

    Selection.AutoFill Destination:=Range("B1" & ":" & "B" & x), Type:=xlFillDefault ' Tire la formule jusqu'à la ligne trouvé stocké en X

End Sub

Cordialement,

Bonjour. Bienvenue sur le Forum

Les valeurs de Change sont inscrites en X2 et Y2

La monnaie d'affichage s'inscrit en B1

Le Bouton affiche l'option de change

Cordialement

20review-example.zip (19.49 Ko)

Merci à vous 2 pour votre aide précieuse ,

J'essaye de l'adapter à mon classeur entier et je vous tiens au courant.

Re-bonjour à tous!

En fait, j'aimerais avoir un bouton unique sur ma première feuille qui convertisse les montants sur tous les autres onglets, excepté sur le premier.

J'essaye depuis tout à l'heure d'adapter des codes trouvés sur d'autres sujets du forum, mais je n'y arrive pas...

Par exemple :

Sub supprligne()

Dim ws As Worksheet
Sheets("Review 2013").Select

Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets

ws.Activate 

Pouvez-vous m'aider s'il vous plait??

Merci d'avance,

Alexandre

En fait, je cherche une ligne de code qui me permette de lancer une macro depuis une feuille sur toutes les autres feuilles, exceptée celle où se situe le bouton. Tout en sachant que la macro vient piocher des infos (les taux de change) sur la 1ère feuille.

Bonjour a tous, j'ai enfin réussi à faire une macro qui tourne sur toutes les feuilles lorsqu'on appuie sur le bouton, et qui fait parfaitement ce que je lui demande : convertir l'ensemble des montants en RUB ou en EUR.

Toutefois un autre problème existe.

Pour convertir les montants sur mes 13 onglets, la macro met 7-8 minutes, ce qui me semble énorme.

Est-ce normal ?

Sinon comment pourrais-je l'optimiser ?

En pièce jointe un exemple avec seulement 3 feuilles (confidentialité oblige), mais le code est OK

Merci d'avance pour votre aide,

Bon je clos le sujet j'ai fini par trouver la solution, voici mes lignes de code pour les intéressés :

Sub Euros()

Dim ws As Worksheet
Sheets("Review 2013").Select

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets

ws.Activate

If ws.Name <> "Review 2013" Then

Dim Cel As Range, Val, Change
Change = Sheets("Review 2013").Range("L3").Value
If IsNumeric(Change) Then
    Range("D3:U" & [A65000].End(xlUp).Row).Select
For Each Cel In Selection
Val = Cel.Value
If IsNumeric(Val) Then
If Not (IsEmpty(Val) Or Cel.HasFormula) Then

Cel.Value = Val * (Change)
End If
End If
Next Cel
End If

End If

Next ws

Sheets("Review 2013").Select
Range("L10").Select
ActiveCell.Formula = "All Amounts are in EUR"
ActiveSheet.Shapes("Bouton").Select
    Selection.Characters.Text = "Change to Roubles"
    Range("B1").Select

Application.Calculation = xlCalculationAutomatic

End Sub

'

Sub Roubles()

Dim ws As Worksheet
Sheets("Review 2013").Select

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets

ws.Activate

If ws.Name <> "Review 2013" Then

Dim Cel As Range, Val, Change
Change = Sheets("Review 2013").Range("M3").Value
If IsNumeric(Change) Then
    Range("D3:U" & [A65000].End(xlUp).Row).Select
For Each Cel In Selection
Val = Cel.Value
If IsNumeric(Val) Then
If Not (IsEmpty(Val) Or Cel.HasFormula) Then

Cel.Value = Val * (Change)
End If
End If
Next Cel
End If

End If

Next ws

Sheets("Review 2013").Select
Range("L10").Select
ActiveCell.Formula = "All Amounts are in RUB"
ActiveSheet.Shapes("Bouton").Select
    Selection.Characters.Text = "Change to Euros"
        Range("B1").Select

Application.Calculation = xlCalculationAutomatic

End Sub

'

Sub Bouton()

ActiveSheet.Shapes("Bouton").Select
If Selection.Characters.Text = "Change to Roubles" Then

     Call Roubles
Else
    Call Euros

End If
End Sub

Merci encore à Amadeus et a Hyrule

Rechercher des sujets similaires à "conversions euros montants"