Excel - Exécuter formule stockée comme texte

Fermé
Dav - 3 mars 2008 à 22:06
 mouftie - 7 déc. 2017 à 15:27
Bonjour,

Sous Excel, j'aimerais savoir s'il est possible d'exécuter, dans une cellule, une formule qui serait écrite dans une autre cellule en tant que simple chaîne de caractères.
Il serait ainsi possible de remplacer une interminable formule "SI" (sinon SI, sinon SI, etc.) par une recherche dans une matrice de formules, en fonction du cas qui se présente.

Par exemple - Supposons une feuille qui convertit des unités de mesure (Celsius à Fahrenheit, gallons à litres, etc.) :
- Un onglet "Conversion" contient deux cellules modifiables : A1="Valeur à convertir" et A2-"Conversion à appliquer" et une cellule non-modifiable A3-"Résultat".
- Un onglet "Dictionnaire des formules de conversion" contient deux colonnes A:NomFormule et B:Formule. Un exemple - en A2 il y aurait "Pouce->Cm" et en B2 "'=Conversion!$A$1*2.54
- Dans la cellule Conversion!A3, est-il possible d'utiliser les formules du "Dictionnaire des formules" ???

Autre exemple pour simplifier encore ma question :
- Cellule A1 : '=Si(B1=1;"Vrai";"Faux") (Noter l'apostrophe devant la formule qui en fait une simple chaine texte)
- Cellule B1 : 1
- Cellule A2 ???Execute formule inscrite dans A1??? : Vrai

Merci !
A voir également:

9 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
4 mars 2008 à 19:53
Bonjour tout le monde,

Il est effectivement possible de le faire sans vba mais avec une astuce.
Je le livre à titre d'info (vba permet plus de souplesse) mais pour un besoin ponctuel ça peut servir, surtout si on n'est pas à l'aise avec vba.

Sous un ancien excel (le 4 ?) il y avait la fontion =EVALUER(A2) qui permettait justement de calculer le résultat de la fonction ecrite en TEXTE dans A2. Par exemple A1: 5 A2: '=A1*2.54

La fonction (plus documentée) a été désactivée. Si je saisi en A3: =EVALUER(A2) j'ai droit à 'fonction non valide'.

Par contre, en passant par la définition d'un nom on arrive à passer.
Menu 'insertion / nom / définir...'
nom : fonction_variable
fait référence à : =EVALUER(Feuil1!$A$2)

En A3 je saisis le nom: =fonction_variable et j'obtiens le résultat de'=A1*2.54 soit 12.7

Je n'ai pas regardé dans le détail si c'est facilement applicable à ton cas car de toute façon tu as la solution en vba de gb, mais c'était l'occasion de rappeler cette astuce
eric
13
Bonjour,

Est il possible d'afficher, non pas l'adresse de la cellule, mais la valeur de cette dernière

cad aulieu d'afficher : A1*2.54, afficher (si A1=3) : 3*2,54
0
Merci Eriiic
0