Je souhaiterais évaluer d'une expression donnée sous forme de texte.
Par exemple dans la cellule A1 : 2*s+1
où s est le nom de la cellule B1 et qui vaut 20, par exemple
Avec A2=EVALUATION(A1) donnerait le résultat 41 aussi simplement que si on
avait A1=2*s+1
Existe-t-il une combinaison de formules d'Excel représentant la fonction
EVALUATION pour arriver à ce résultat ?
Function EVALU(cel1, cel2) x = Application.Substitute(cel1, "s", cel2) EVALU = Evaluate(x) End Function
Dans la feuille et pour ton exemple : =EVALU(A1;B1)
AV
Modeste
Bonsour® GGAL avec ferveur ;o))) vous nous disiez :
Je souhaiterais évaluer d'une expression donnée sous forme de texte. Par exemple dans la cellule A1 : 2*s+1 où s est le nom de la cellule B1 et qui vaut 20, par exemple Avec A2=EVALUATION(A1) donnerait le résultat 41 aussi simplement que si on avait A1=2*s+1 Existe-t-il une combinaison de formules d'Excel représentant la fonction EVALUATION pour arriver à ce résultat ?
une reponse de : "MichDenis" Objet: Re: Afficher une opération / afficher un calcul dans une cellule, afficher le résultat dans une autre cellule. Date: vendredi 13 avril 2007 13:02
Tu crées un nom : Barre des menus / insertion / nom / définir
Son Nom : Calcul Fait référence : =EVALUER(Feuil1!$A1) A1 = adresse de la première cellule où tu entreras tes données à calculer : 2*s+1
-- -- @+ ;o)))
Bonsour® GGAL avec ferveur ;o))) vous nous disiez :
Je souhaiterais évaluer d'une expression donnée sous forme de texte.
Par exemple dans la cellule A1 : 2*s+1
où s est le nom de la cellule B1 et qui vaut 20, par exemple
Avec A2=EVALUATION(A1) donnerait le résultat 41 aussi simplement que si on
avait A1=2*s+1
Existe-t-il une combinaison de formules d'Excel représentant la fonction
EVALUATION pour arriver à ce résultat ?
une reponse de : "MichDenis"
Objet: Re: Afficher une opération / afficher un calcul dans une cellule,
afficher le résultat dans une autre cellule.
Date: vendredi 13 avril 2007 13:02
Tu crées un nom : Barre des menus / insertion / nom / définir
Son Nom : Calcul
Fait référence : =EVALUER(Feuil1!$A1)
A1 = adresse de la première cellule
où tu entreras tes données à calculer : 2*s+1
Bonsour® GGAL avec ferveur ;o))) vous nous disiez :
Je souhaiterais évaluer d'une expression donnée sous forme de texte. Par exemple dans la cellule A1 : 2*s+1 où s est le nom de la cellule B1 et qui vaut 20, par exemple Avec A2=EVALUATION(A1) donnerait le résultat 41 aussi simplement que si on avait A1=2*s+1 Existe-t-il une combinaison de formules d'Excel représentant la fonction EVALUATION pour arriver à ce résultat ?
une reponse de : "MichDenis" Objet: Re: Afficher une opération / afficher un calcul dans une cellule, afficher le résultat dans une autre cellule. Date: vendredi 13 avril 2007 13:02
Tu crées un nom : Barre des menus / insertion / nom / définir
Son Nom : Calcul Fait référence : =EVALUER(Feuil1!$A1) A1 = adresse de la première cellule où tu entreras tes données à calculer : 2*s+1
-- -- @+ ;o)))
GGAL
C'est un peu ça, mais la fonction ne marche pas. Et il faudrait que ça marche pour n'importe quelle fonction mathématique. GGal
Si j'ai compris. Dans un module ordinaire
Function EVALU(cel1, cel2) x = Application.Substitute(cel1, "s", cel2) EVALU = Evaluate(x) End Function
Dans la feuille et pour ton exemple : =EVALU(A1;B1)
AV
C'est un peu ça, mais la fonction ne marche pas. Et il faudrait que ça marche
pour n'importe quelle fonction mathématique.
GGal
Si j'ai compris.
Dans un module ordinaire
Function EVALU(cel1, cel2)
x = Application.Substitute(cel1, "s", cel2)
EVALU = Evaluate(x)
End Function
Dans la feuille et pour ton exemple :
=EVALU(A1;B1)
C'est un peu ça, mais la fonction ne marche pas. Et il faudrait que ça marche pour n'importe quelle fonction mathématique. GGal
Si j'ai compris. Dans un module ordinaire
Function EVALU(cel1, cel2) x = Application.Substitute(cel1, "s", cel2) EVALU = Evaluate(x) End Function
Dans la feuille et pour ton exemple : =EVALU(A1;B1)
AV
GGAL
Je pense que j'ai trouvé. Mais il faut créer un module standard pour que Evaluate fonctionne (ne pas placer la procédure sous Feuil1 ou ThisWorkbook), remplacer la virgule par un point, et à condition d'avoir Excel 2003, car Replace n'existe pas sous Excel 97 ! Y a-t-il mieux ?
Public Function EVALUATION(Chaine As String) Application.Volatile EVALUATION = Evaluate(Replace(Chaine, ",", ".")) End Function
Je pense que j'ai trouvé.
Mais il faut créer un module standard pour que Evaluate fonctionne (ne pas
placer la procédure sous Feuil1 ou ThisWorkbook), remplacer la virgule par un
point, et à condition d'avoir Excel 2003, car Replace n'existe pas sous Excel
97 !
Y a-t-il mieux ?
Public Function EVALUATION(Chaine As String)
Application.Volatile
EVALUATION = Evaluate(Replace(Chaine, ",", "."))
End Function
Je pense que j'ai trouvé. Mais il faut créer un module standard pour que Evaluate fonctionne (ne pas placer la procédure sous Feuil1 ou ThisWorkbook), remplacer la virgule par un point, et à condition d'avoir Excel 2003, car Replace n'existe pas sous Excel 97 ! Y a-t-il mieux ?
Public Function EVALUATION(Chaine As String) Application.Volatile EVALUATION = Evaluate(Replace(Chaine, ",", ".")) End Function
AV
Mais il faut créer un module standard pour que Evaluate fonctionne
C'est ce que t'ai dit ! : "...Dans un module ordinaire..."
...car Replace n'existe pas sous Excel 97 !
Je n'ai pas utilisé "Replace" mais "Application.Substitute(....)" Il n'y a aucun souci avec cette syntaxe quelle que soit la version XL
Quant à remplacer par vba, la virgule par un point, je ne vois pas le rapport avec la question initiale !
Mais bon... chaucun fait comme il veut...
AV
Mais il faut créer un module standard pour que Evaluate fonctionne
C'est ce que t'ai dit ! : "...Dans un module ordinaire..."
...car Replace n'existe pas sous Excel 97 !
Je n'ai pas utilisé "Replace" mais "Application.Substitute(....)"
Il n'y a aucun souci avec cette syntaxe quelle que soit la version XL
Quant à remplacer par vba, la virgule par un point, je ne vois pas le rapport
avec la question initiale !
Mais il faut créer un module standard pour que Evaluate fonctionne
C'est ce que t'ai dit ! : "...Dans un module ordinaire..."
...car Replace n'existe pas sous Excel 97 !
Je n'ai pas utilisé "Replace" mais "Application.Substitute(....)" Il n'y a aucun souci avec cette syntaxe quelle que soit la version XL
Quant à remplacer par vba, la virgule par un point, je ne vois pas le rapport avec la question initiale !
Mais bon... chaucun fait comme il veut...
AV
GGAL
Je n'ai pas utilisé "Replace" mais "Application.Substitute(....)" Il n'y a aucun souci avec cette syntaxe quelle que soit la version XL
Quant à remplacer par vba, la virgule par un point, je ne vois pas le rapport avec la question initiale !
Quelques explications car j'ai cherché un peu partout en effet :
Application.volatile : pour une fonction dynamique
Comme j'utilise la virgule comme séparateur décimal, la fonction me renvoie #VALEUR! si j'ai un nombre décimal dans la formule littérale. L'astuce consiste à remplacer la virgule par le point, d'où Replace. Mais si Substitute convient aussi pour Excel 97, je suis preneur !
Merci à tous GGal
Je n'ai pas utilisé "Replace" mais "Application.Substitute(....)"
Il n'y a aucun souci avec cette syntaxe quelle que soit la version XL
Quant à remplacer par vba, la virgule par un point, je ne vois pas le rapport
avec la question initiale !
Quelques explications car j'ai cherché un peu partout en effet :
Application.volatile : pour une fonction dynamique
Comme j'utilise la virgule comme séparateur décimal, la fonction me renvoie
#VALEUR! si j'ai un nombre décimal dans la formule littérale.
L'astuce consiste à remplacer la virgule par le point, d'où Replace. Mais si
Substitute convient aussi pour Excel 97, je suis preneur !
Je n'ai pas utilisé "Replace" mais "Application.Substitute(....)" Il n'y a aucun souci avec cette syntaxe quelle que soit la version XL
Quant à remplacer par vba, la virgule par un point, je ne vois pas le rapport avec la question initiale !
Quelques explications car j'ai cherché un peu partout en effet :
Application.volatile : pour une fonction dynamique
Comme j'utilise la virgule comme séparateur décimal, la fonction me renvoie #VALEUR! si j'ai un nombre décimal dans la formule littérale. L'astuce consiste à remplacer la virgule par le point, d'où Replace. Mais si Substitute convient aussi pour Excel 97, je suis preneur !