Excel - Exécuter formule stockée comme texte
Dav
-
mouftie -
mouftie -
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 !
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:
- Convertir texte en formule excel
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Excel mise en forme conditionnelle formule - Guide
- Formule somme excel colonne - Guide
9 réponses
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
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
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