Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calcul au format TXT dans une cellule, résultat numérique dans a ut

19 réponses
Avatar
sysgest
Bonjour a tous

Exemple
Je veut en format text dans la cellule A1 "1+5-3*4"
Et dans la cellule B1 le résultat mathématique de la cellule précédente soit
A1 donc 12

Mon objectif:
Entrer comme sur une calculatrice un calcul (et quil reste affiché ) et que
le résultat s'affiche dans la cellulu suivante.

Aidez moi je suis bloqué la dessus
Vous pouvez me repondre en directe si vous le desirez sur sysgest@hotmail.com

Merci a tous

10 réponses

1 2
Avatar
MichDenis
Dans un module standard, tu copies la fonction suivante :

'------------------
Function Eval(rg As Range)
Dim T As String
T = rg
Eval = Evaluate(T)
End Function
'------------------

Et dans ta cellule B1 tu inscris : = Eval(A1)



"sysgest" a écrit dans le message de news:

Bonjour a tous

Exemple
Je veut en format text dans la cellule A1 "1+5-3*4"
Et dans la cellule B1 le résultat mathématique de la cellule précédente soit
A1 donc 12

Mon objectif:
Entrer comme sur une calculatrice un calcul (et quil reste affiché ) et que
le résultat s'affiche dans la cellulu suivante.

Aidez moi je suis bloqué la dessus
Vous pouvez me repondre en directe si vous le desirez sur

Merci a tous
Avatar
sysgest
Salut
Merci pour la reponse mais que veut tu dir exactement par:
"Dans un module standard, tu copies la fonction suivante :"
Que veut tu dir par Un modul standard

Merci a l'avance


Dans un module standard, tu copies la fonction suivante :

'------------------
Function Eval(rg As Range)
Dim T As String
T = rg
Eval = Evaluate(T)
End Function
'------------------

Et dans ta cellule B1 tu inscris : = Eval(A1)



"sysgest" a écrit dans le message de news:

Bonjour a tous

Exemple
Je veut en format text dans la cellule A1 "1+5-3*4"
Et dans la cellule B1 le résultat mathématique de la cellule précédente soit
A1 donc 12

Mon objectif:
Entrer comme sur une calculatrice un calcul (et quil reste affiché ) et que
le résultat s'affiche dans la cellulu suivante.

Aidez moi je suis bloqué la dessus
Vous pouvez me repondre en directe si vous le desirez sur

Merci a tous





Avatar
MichDenis
Fenêtre de l'éditeur de code : raccourci clavier Alt + F11
à partir du menu de cette fenêtre,
barre de menu / Insertion / Module
et dans la page blanche qui surgit, tu copies le code.


"sysgest" a écrit dans le message de news:

Salut
Merci pour la reponse mais que veut tu dir exactement par:
"Dans un module standard, tu copies la fonction suivante :"
Que veut tu dir par Un modul standard

Merci a l'avance


Dans un module standard, tu copies la fonction suivante :

'------------------
Function Eval(rg As Range)
Dim T As String
T = rg
Eval = Evaluate(T)
End Function
'------------------

Et dans ta cellule B1 tu inscris : = Eval(A1)



"sysgest" a écrit dans le message de news:

Bonjour a tous

Exemple
Je veut en format text dans la cellule A1 "1+5-3*4"
Et dans la cellule B1 le résultat mathématique de la cellule précédente soit
A1 donc 12

Mon objectif:
Entrer comme sur une calculatrice un calcul (et quil reste affiché ) et que
le résultat s'affiche dans la cellulu suivante.

Aidez moi je suis bloqué la dessus
Vous pouvez me repondre en directe si vous le desirez sur

Merci a tous





Avatar
garnote
Mais attention aux exposants pairs.
Pour Excel -2^2 et 2^2 donnent 4
alors qu'une calculatrice fait la différence.
-2^2 = -4 et 2^2 = 4. Alors si ton expression
à évaluer commence par -nombre1^nombre2 pair,
il faut modifier un tipeu la fonction de Denis pour
obtenir la bonne réponse :

Function Eval(rg As Range)
Dim T As String
T = rg
Eval = Evaluate(Replace(T, "-", "+0-"))
End Function

Serge










"sysgest" a écrit dans le message de news:
Bonjour a tous

Exemple
Je veut en format text dans la cellule A1 "1+5-3*4"
Et dans la cellule B1 le résultat mathématique de la cellule précédente soit
A1 donc 12

Mon objectif:
Entrer comme sur une calculatrice un calcul (et quil reste affiché ) et que
le résultat s'affiche dans la cellulu suivante.

Aidez moi je suis bloqué la dessus
Vous pouvez me repondre en directe si vous le desirez sur

Merci a tous



Avatar
sysgest
Merci
Ici il est 12h00 je dinne et je fait le test et je te redonne le resultat

Merci beaucoup, beaucoup,....


Fenêtre de l'éditeur de code : raccourci clavier Alt + F11
à partir du menu de cette fenêtre,
barre de menu / Insertion / Module
et dans la page blanche qui surgit, tu copies le code.


"sysgest" a écrit dans le message de news:

Salut
Merci pour la reponse mais que veut tu dir exactement par:
"Dans un module standard, tu copies la fonction suivante :"
Que veut tu dir par Un modul standard

Merci a l'avance


Dans un module standard, tu copies la fonction suivante :

'------------------
Function Eval(rg As Range)
Dim T As String
T = rg
Eval = Evaluate(T)
End Function
'------------------

Et dans ta cellule B1 tu inscris : = Eval(A1)



"sysgest" a écrit dans le message de news:

Bonjour a tous

Exemple
Je veut en format text dans la cellule A1 "1+5-3*4"
Et dans la cellule B1 le résultat mathématique de la cellule précédente soit
A1 donc 12

Mon objectif:
Entrer comme sur une calculatrice un calcul (et quil reste affiché ) et que
le résultat s'affiche dans la cellulu suivante.

Aidez moi je suis bloqué la dessus
Vous pouvez me repondre en directe si vous le desirez sur

Merci a tous










Avatar
sysgest
Salut
Ca marche pas ca me donne #NOM?


En passant j'ai bien enlevé les ">" davant le code

Fenêtre de l'éditeur de code : raccourci clavier Alt + F11
à partir du menu de cette fenêtre,
barre de menu / Insertion / Module
et dans la page blanche qui surgit, tu copies le code.


"sysgest" a écrit dans le message de news:

Salut
Merci pour la reponse mais que veut tu dir exactement par:
"Dans un module standard, tu copies la fonction suivante :"
Que veut tu dir par Un modul standard

Merci a l'avance


Dans un module standard, tu copies la fonction suivante :

'------------------
Function Eval(rg As Range)
Dim T As String
T = rg
Eval = Evaluate(T)
End Function
'------------------

Et dans ta cellule B1 tu inscris : = Eval(A1)



"sysgest" a écrit dans le message de news:

Bonjour a tous

Exemple
Je veut en format text dans la cellule A1 "1+5-3*4"
Et dans la cellule B1 le résultat mathématique de la cellule précédente soit
A1 donc 12

Mon objectif:
Entrer comme sur une calculatrice un calcul (et quil reste affiché ) et que
le résultat s'affiche dans la cellulu suivante.

Aidez moi je suis bloqué la dessus
Vous pouvez me repondre en directe si vous le desirez sur

Merci a tous










Avatar
MichDenis
Si tu écris dans une cellule :
= -(2^2) , tu obtiens -4

Il faut quand même respecter la priorité des opérateurs
dans sa façon d'écrire les données ... et si cette priorité
est respectée, la fonction Eval() renvoie la bonne réponse.


"garnote" a écrit dans le message de news:

Mais attention aux exposants pairs.
Pour Excel -2^2 et 2^2 donnent 4
alors qu'une calculatrice fait la différence.
-2^2 = -4 et 2^2 = 4. Alors si ton expression
à évaluer commence par -nombre1^nombre2 pair,
il faut modifier un tipeu la fonction de Denis pour
obtenir la bonne réponse :

Function Eval(rg As Range)
Dim T As String
T = rg
Eval = Evaluate(Replace(T, "-", "+0-"))
End Function

Serge










"sysgest" a écrit dans le message de news:

Bonjour a tous

Exemple
Je veut en format text dans la cellule A1 "1+5-3*4"
Et dans la cellule B1 le résultat mathématique de la cellule précédente soit
A1 donc 12

Mon objectif:
Entrer comme sur une calculatrice un calcul (et quil reste affiché ) et que
le résultat s'affiche dans la cellulu suivante.

Aidez moi je suis bloqué la dessus
Vous pouvez me repondre en directe si vous le desirez sur

Merci a tous



Avatar
MichDenis
Ta fonction doit être écrite dans un MODULE STANDARD
et non un module de feuille ou un module de Classe.


"sysgest" a écrit dans le message de news:

Salut
Ca marche pas ca me donne #NOM?


En passant j'ai bien enlevé les ">" davant le code

Fenêtre de l'éditeur de code : raccourci clavier Alt + F11
à partir du menu de cette fenêtre,
barre de menu / Insertion / Module
et dans la page blanche qui surgit, tu copies le code.


"sysgest" a écrit dans le message de news:

Salut
Merci pour la reponse mais que veut tu dir exactement par:
"Dans un module standard, tu copies la fonction suivante :"
Que veut tu dir par Un modul standard

Merci a l'avance


Dans un module standard, tu copies la fonction suivante :

'------------------
Function Eval(rg As Range)
Dim T As String
T = rg
Eval = Evaluate(T)
End Function
'------------------

Et dans ta cellule B1 tu inscris : = Eval(A1)



"sysgest" a écrit dans le message de news:

Bonjour a tous

Exemple
Je veut en format text dans la cellule A1 "1+5-3*4"
Et dans la cellule B1 le résultat mathématique de la cellule précédente soit
A1 donc 12

Mon objectif:
Entrer comme sur une calculatrice un calcul (et quil reste affiché ) et que
le résultat s'affiche dans la cellulu suivante.

Aidez moi je suis bloqué la dessus
Vous pouvez me repondre en directe si vous le desirez sur

Merci a tous










Avatar
sysgest
Mais je fais le test avec somplement 2+2
J'ai tellement besoint que ca fonctionne
merci


Mais attention aux exposants pairs.
Pour Excel -2^2 et 2^2 donnent 4
alors qu'une calculatrice fait la différence.
-2^2 = -4 et 2^2 = 4. Alors si ton expression
à évaluer commence par -nombre1^nombre2 pair,
il faut modifier un tipeu la fonction de Denis pour
obtenir la bonne réponse :

Function Eval(rg As Range)
Dim T As String
T = rg
Eval = Evaluate(Replace(T, "-", "+0-"))
End Function

Serge










"sysgest" a écrit dans le message de news:
Bonjour a tous

Exemple
Je veut en format text dans la cellule A1 "1+5-3*4"
Et dans la cellule B1 le résultat mathématique de la cellule précédente soit
A1 donc 12

Mon objectif:
Entrer comme sur une calculatrice un calcul (et quil reste affiché ) et que
le résultat s'affiche dans la cellulu suivante.

Aidez moi je suis bloqué la dessus
Vous pouvez me repondre en directe si vous le desirez sur

Merci a tous








Avatar
garnote
Salut Denis

Oui bien sûr, mais c'est pour éviter de mettre
des parenthèses que j'ai remplacé "-" par "+0-".
Les logiciels comme Maple et les calculatrices
renvoient -4 quand on entre -2^2, renvoient
-16 quand on entre -2^4 ...
Et pour évaluer toute expression en x pouvant contenir
des fonctions d'Excel, par exemple, sin(x)+ln(x^2)-x^2 :
Je nomme une cellule "x" et j'y entre un nombre.
J'entre mon expression dans une cellule formatée "texte"
et j'utilise cette fonction :
Function Eval(rg As Range)
Application.Volatile
Dim T As String
T = rg
Eval = Evaluate(Replace(T, "-", "+0-") & "+x*0")
End Function
Et une question pour toi :
Si j'entre, par exemple, sin(3,1416)-ln(10)
que faudrait-il mettre à la place de & "+x*0" ?

Serge




"MichDenis" a écrit dans le message de news:
Si tu écris dans une cellule :
= -(2^2) , tu obtiens -4

Il faut quand même respecter la priorité des opérateurs
dans sa façon d'écrire les données ... et si cette priorité
est respectée, la fonction Eval() renvoie la bonne réponse.


"garnote" a écrit dans le message de news:

Mais attention aux exposants pairs.
Pour Excel -2^2 et 2^2 donnent 4
alors qu'une calculatrice fait la différence.
-2^2 = -4 et 2^2 = 4. Alors si ton expression
à évaluer commence par -nombre1^nombre2 pair,
il faut modifier un tipeu la fonction de Denis pour
obtenir la bonne réponse :

Function Eval(rg As Range)
Dim T As String
T = rg
Eval = Evaluate(Replace(T, "-", "+0-"))
End Function

Serge










"sysgest" a écrit dans le message de news:

Bonjour a tous

Exemple
Je veut en format text dans la cellule A1 "1+5-3*4"
Et dans la cellule B1 le résultat mathématique de la cellule précédente soit
A1 donc 12

Mon objectif:
Entrer comme sur une calculatrice un calcul (et quil reste affiché ) et que
le résultat s'affiche dans la cellulu suivante.

Aidez moi je suis bloqué la dessus
Vous pouvez me repondre en directe si vous le desirez sur

Merci a tous








1 2