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

conversion texte > formule

6 réponses
Avatar
JM Corazza
> CE MESSAGE EST AU FORMAT MIME. Comme votre lecteur de courrier ne comprend pas
ce format, il se peut que tout ou partie de ce message soit illisible.

--MS_Mac_OE_3165962216_1422227_MIME_Part
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit

Bonjour,


Bien que subodorant une reponse negative, j'expose quand meme le probleme a
votre sagacite collective :

Peut-on transformer une chaine de caracteres du style (4+2)+(4X32) en
formule ?

Je commence par transformer les X ou x en * par
=SUBSTITUE(MAJUSCULE(A4);"X";"*")
ce qui me donne (4+2)+(4*32)
mais ensuite il faudrait qu'Excel puisse interpreter la formule et me donner
le resultat : 134

Petite precision, il s'agit d'Excel 2000...

Merci d'avance

JM

--MS_Mac_OE_3165962216_1422227_MIME_Part
Content-type: text/html; charset="US-ASCII"
Content-transfer-encoding: quoted-printable

<HTML>
<HEAD>
<TITLE>conversion texte &gt; formule</TITLE>
</HEAD>
<BODY>
Bonjour,<BR>
<BR>
<BR>
Bien que subodorant une reponse negative, j'expose quand meme le probleme a=
votre sagacite collective :<BR>
<BR>
Peut-on transformer une chaine de caracteres du style <B>(4+2)+(4X32)</B> e=
n formule ?<BR>
<BR>
Je commence par transformer les X ou x en * par <B>=3DSUBSTITUE(MAJUSCULE(A4)=
;&quot;X&quot;;&quot;*&quot;)</B> <BR>
ce qui me donne <B>(4+2)+(4*32)<BR>
</B>mais ensuite il faudrait qu'Excel puisse interpreter la formule et me d=
onner le resultat : 134<BR>
<BR>
Petite precision, il s'agit d'Excel 2000...<BR>
<BR>
Merci d'avance<BR>
<BR>
JM
</BODY>
</HTML>


--MS_Mac_OE_3165962216_1422227_MIME_Part--

6 réponses

Avatar
Clément Marcotte
Bonjour,

Peut-on transformer une chaine de caracteres du style (4+2)+(4X32)
en

formule ?


Ce n'est pas une formule, et c'est prévu pour Word, mais cela te
donnerait sans doute un point de départ.
(Pas sur que les augustes personnes qui hantent ces lieux feraient
comme moi, mais bon...)


La version finale:

http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&threadm=eNN1c5dfAHA.1600%40tkmsftngp04&rnum=1&prev=/groups%3Fq%3Dcalculhorizontal%2Bgroup:microsoft.public.fr.word%2Bauthor:clement.marcotte%2540sympatico.ca%26hl%3Dfr%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26scoring%3Dd%26filter%3D0


La version initiale:


http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&threadm=%233kihrcfAHA.1308%40tkmsftngp02&rnum=7&prev=/groups%3Fq%3Dcalculhorizontal%2Bgroup:microsoft.public.fr.word%2Bauthor:clement.marcotte%2540sympatico.ca%26hl%3Dfr%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26scoring%3Dd%26filter%3D0





"JM Corazza" a écrit dans le message de
news:BCB4BFE1.18E3%
Bonjour,


Bien que subodorant une reponse negative, j'expose quand meme le
probleme a

votre sagacite collective :

Je commence par transformer les X ou x en * par
=SUBSTITUE(MAJUSCULE(A4);"X";"*")
ce qui me donne (4+2)+(4*32)
mais ensuite il faudrait qu'Excel puisse interpreter la formule et
me donner

le resultat : 134

Petite precision, il s'agit d'Excel 2000...

Merci d'avance

JM



Avatar
isabelle
bonjour JM,

c'est possible en vba,

Sub Macro1()
plg = "A4"
ActiveCell.Formula = "=" & Evaluate("=SUBSTITUTE(UPPER(" & plg &
"),""X"",""*"")")
End Sub

mais directement sur la feuille je ne rois pas.

isabelle


Bonjour,

Bien que subodorant une reponse negative, j'expose quand meme le
probleme a votre sagacite collective :

Peut-on transformer une chaine de caracteres du style (4+2)+(4X32) en
formule ?

Je commence par transformer les X ou x en * par
=SUBSTITUE(MAJUSCULE(A4);"X";"*")
ce qui me donne (4+2)+(4*32)
mais ensuite il faudrait qu'Excel puisse interpreter la formule et me
donner le resultat : 134

Petite precision, il s'agit d'Excel 2000...

Merci d'avance

JM


Avatar
Clément Marcotte
Bonjour,

mais directement sur la feuille je ne rois pas.


Ça ce pourrait peut-être. (Dans mes exercices de calcul horizontal, il
y a une version qui utilise une vieille routine QuickBasic que j'avais
un peu "face-liftée" pour que que cela marche avec VBA. (Mais cela
fait plus 3 ans, et je n'ai pas envie de me rembarquer dans cette
histoire. Cela fait que si tu veux continuer...):

http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&selm=eQoPHMrfAHA.1756%40tkmsftngp05&rnum=6

Évidemment, il y a quelques lignes exotiques pour les Excelliens.



"isabelle" a écrit dans le message de
news:
bonjour JM,

c'est possible en vba,

Sub Macro1()
plg = "A4"
ActiveCell.Formula = "=" & Evaluate("=SUBSTITUTE(UPPER(" & plg &
"),""X"",""*"")")
End Sub


isabelle


Bonjour,

Bien que subodorant une reponse negative, j'expose quand meme le
probleme a votre sagacite collective :

Peut-on transformer une chaine de caracteres du style (4+2)+(4X32)
en


formule ?

Je commence par transformer les X ou x en * par
=SUBSTITUE(MAJUSCULE(A4);"X";"*")
ce qui me donne (4+2)+(4*32)
mais ensuite il faudrait qu'Excel puisse interpreter la formule et
me


donner le resultat : 134

Petite precision, il s'agit d'Excel 2000...

Merci d'avance

JM




Avatar
Modeste
Bonjour,
1 -----------
la solution dans la feuille de calcul elle-même et sans
BVA, nécessite une intervention manuelle :

en A1 : (4+2)+(4X32)
en B1 : ÊR(61)&SUBSTITUE(MAJUSCULE(A1);"X";"*")
le curseur étant alors dans la barre de formule, il
suffit alors d'appuyer sur F9

2--------
une fonction perso, fruit d'une cogitation avec LL, il y
a ici quelques temps déja.... :
pour obtenir le résultat numérique de cette expression
texte qui melange les torchons et les serviettes.....

Function CalculExp(Expression)
LesNums = ",()+*-/^0123456789"
For i = 1 To Len(Expression.Value)
If InStr(1, LesNums , Mid(Expression, i, 1)) Then sExp
= sExp + Mid(Expression, i, 1)
Next
CalculExp = Evaluate(sExp)
End Function

soit :
A B
15 poireaux +8 carottes 23 formule en B1
ÊlculExp(A1)
128 torchons +542 serviettes 670 formule en B2
ÊlculExp(A2)
2*9 Go+5*18 Go 108 formule en B3
ÊlculExp(A3)

3--------------------
la possibilité envisagée par "Isa belle vie" de
transformer X en * peut etre intégrée
ainsi que événtuellement changer ":" en "/"

ex : en B1 ÊlculExp(Substitue(Majuscule(A1);"X";"*")



@+


-----Message d'origine-----
bonjour JM,

c'est possible en vba,

Sub Macro1()
plg = "A4"
ActiveCell.Formula = "=" & Evaluate("=SUBSTITUTE(UPPER("
& plg &

"),""X"",""*"")")
End Sub

mais directement sur la feuille je ne rois pas.

isabelle


Bonjour,

Bien que subodorant une reponse negative, j'expose
quand meme le


probleme a votre sagacite collective :

Peut-on transformer une chaine de caracteres du style
(4+2)+(4X32) en


formule ?

Je commence par transformer les X ou x en * par
=SUBSTITUE(MAJUSCULE(A4);"X";"*")
ce qui me donne (4+2)+(4*32)
mais ensuite il faudrait qu'Excel puisse interpreter
la formule et me


donner le resultat : 134

Petite precision, il s'agit d'Excel 2000...

Merci d'avance

JM
.





Avatar
FxM
Bonsoir,

Une solution qui est un demi-détournement :

Via une fonction perso : voir le message 17 du fil
http://www.google.fr/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&threadm=ucRGUXCGEHA.2428%40tk2msftngp13.phx.gbl&rnum=2&prev=/groups%3Fas_q%3Deval%2520%253D%26ie%3DUTF-8%26oe%3DUTF-8%26as_ugroup%3D*.fr.excel%26as_scoring%3Dd%26lr%3D%26num%3D100%26hl%3Dfr

Pour la substitution : tel que tu l'as écrite

Ensuite : =eval(ta_cellule_susbtituée)

@+
FxM





JM Corazza wrote:

Bonjour,


Bien que subodorant une reponse negative, j'expose quand meme le
probleme a votre sagacite collective :

Peut-on transformer une chaine de caracteres du style *(4+2)+(4X32)* en
formule ?

Je commence par transformer les X ou x en * par
*=SUBSTITUE(MAJUSCULE(A4);"X";"*")*
ce qui me donne *(4+2)+(4*32)
*mais ensuite il faudrait qu'Excel puisse interpreter la formule et me
donner le resultat : 134

Petite precision, il s'agit d'Excel 2000...

Merci d'avance

JM


Avatar
MOA
Bonjour,


Merci de m'avoir fait profiter de vos cogitations.

L'astuce de FxM me semble la plus pratique a mettre en oeuvre. La voici
rappelee :

C'est possible sous forme d'une fonction personnelle.

Alt-F11, Insertion | module, copies-y ce qui suit :
Public Function eval(inp)
Application.Volatile
If Left(inp, 1) <> "=" Then inp = "=" & inp
eval = Application.Evaluate(inp)
End Function

Exemple d'usage :
En A1 : 25
En A2 : (2*A1)-7
En A3 : =eval(A2) -> résultat : 43


Encore merci.

A++

JM