• Initiateur de la discussion Initiateur de la discussion Guest
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

Guest

Guest
Bonjour à tous!

Je sais pas si je serais très claire sans fichier joint mais je vais essayer! D'un côté, j'ai des données brutes que je veux convertir selon un choix de monnaie, ca je sais faire. En revanche, j'ai d'autres données qui sont, elles, issues de formules que je voudrais convertir, or je n'arrive pas à trouver d'outil qui me convertisse directement dans la monnaie voulue... Tout ce que je trouve me convertit la valeur résultante de la formule mais moi, je voudrais que ce soit à la formule elle meme que soit appliquée la conversion....😕
 
Re : Conversion

Voilà un fichier joint ou j'ai crée les macros... la première fonctionne et me donne ce que je veux. La seconde macro aussi mais elle me convertit uniquement la VALEUR de la cellule alors que je voudrais que la formule reste en tant que telle dans ma cellule tout en me donnant une valeur convertie.... 😕
 
Re : Conversion

bonjour lililette

salut ODVJ

@ lililette

une modif de ta macro qui semble fonctionner
(attention il peut y avoir une virgule à transformer en point selon l'option régionale)

@ OVDJ

je jette un oeil à ta solution pour tenter de m'ameliorer coté fonctions
 

Pièces jointes

Re : Conversion

Merci beaucoup à vous 3!Pierre-Jean, c'est exactement ce qu'il me fallait mais pourriez vous m'expliquer un peu plus la macro (le but étant que je la comprenne un peu quand meme! 😀 ) : que veulent dire : "CStr"? "c.FormulaLocal" ?
 
Re : Conversion

voila les commentaires
j'espere qu'ils sont suffisamment clairs
(c.formulalocal est la fonction de la cellule c)

Code:
For Each c In Range("formulae")
'pour chaque cellule de la plage nommée formulae
    If Right(CStr(c.FormulaLocal), 2) = "67" Then
    'si la fonction utilisée (en l'occurence : =Sheet1!C5*0,67) se termine par 67 alors
    '(cstr transforme la fonction en string)
    c.FormulaLocal = Left(CStr(c.FormulaLocal), Len(CStr(c.FormulaLocal)) - 5)
     'on enleve les 5 derniers termes (*0,67)
     'exactement :prendre a gauche le nombre de termes correspondant a la longueur de la formule -5
    Else
    'sinon
    c.FormulaLocal = CStr(c.FormulaLocal) & "*0,67"
     ' on ajoute a la formule le *0,67
    End If
Next c

au passage mes excuses a jmps que j'ai oublié de saluer
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
558
Réponses
3
Affichages
471
Retour