OVH Cloud OVH Cloud

Voir le signe et calculer

7 réponses
Avatar
DanC
Bonjour à tous

Je veux entrer dans une cellule, par exemple
3+5
je veux voir cela affiché tel quel, mais je veux aussi que le résultat (8
dans l'exemple) soit accepté si cette cellule est utilisée dans une formule
.

Y a t'il moyen de faire cela?

Merci de m'aider là-dedans!
--
(___) Danielle
(oo) "... A quoi bon la charrue
\/-------\ et la voile, la terre et
|| || \ la vie sans la liberté?"
||---W|| * - Ralph Waldo Emerson
^^ ^^

7 réponses

Avatar
FxM
Bonsoir Danielle,

Alt-F11 | insertion | module
Y copier ce qui suit :

public function eval(inp)
if left(inp) <> "=" then inp = "=" & inp
eval=application.evaluate(inp)
end function

Exemple d'usage :
En F1 : 3+5
En F2 : =eval(F1) -> résultat = 8

Si tu mets cette fonction dans perso.xls, elle devient dispo de partout.

@+
FxM





Bonjour à tous

Je veux entrer dans une cellule, par exemple
3+5
je veux voir cela affiché tel quel, mais je veux aussi que le résultat (8
dans l'exemple) soit accepté si cette cellule est utilisée dans une formule
..

Y a t'il moyen de faire cela?

Merci de m'aider là-dedans!


Avatar
DanC
Bonjour et merci pour cette solution, pourtant je bute sur une erreur de
compilation, avec le renseignement suivant: "Argument non facultatif"
le mot left est en sélectionné, la ligne qui commence par public est en
jaune, et moi presque en larmes :-((( et ouverte à la solution!

Y avait pas moyen de parvenir à ce résultat qu'en jouant avec les formats?
même si on doit mettre le signe = ?

--
(___) Danielle
(oo) "... A quoi bon la charrue
/------- et la voile, la terre et
|| || la vie sans la liberté?"
||---W|| * - Ralph Waldo Emerson
^^ ^^
"FxM" a écrit dans le message de news:

Bonsoir Danielle,

Alt-F11 | insertion | module
Y copier ce qui suit :

public function eval(inp)
if left(inp) <> "=" then inp = "=" & inp
eval=application.evaluate(inp)
end function

Exemple d'usage :
En F1 : 3+5
En F2 : =eval(F1) -> résultat = 8

Si tu mets cette fonction dans perso.xls, elle devient dispo de partout.

@+
FxM





Bonjour à tous

Je veux entrer dans une cellule, par exemple
3+5
je veux voir cela affiché tel quel, mais je veux aussi que le résultat (8
dans l'exemple) soit accepté si cette cellule est utilisée dans une
formule ..

Y a t'il moyen de faire cela?

Merci de m'aider là-dedans!




Avatar
FxM
Bonjour et merci pour cette solution, pourtant je bute sur une erreur de
compilation, avec le renseignement suivant: "Argument non facultatif"
le mot left est en sélectionné, la ligne qui commence par public est en
jaune, et moi presque en larmes :-((( et ouverte à la solution!

Y avait pas moyen de parvenir à ce résultat qu'en jouant avec les formats?
même si on doit mettre le signe = ?




Bonjour,

"Argument non facultatif" le mot left est en sélectionné,
J'en ai oublié un bout ! Sorry :o(

if left(inp,1) = "=" ... pour prendre UN caractère à gauche

la ligne qui commence par public est en jaune,
Logique puisqu'Excel vient de hurler sur le left(...)


et moi presque en larmes :-((( et ouverte à la solution!
Faut pas pleurer (dit-il de sa petite voix) et ne me pas me tenter ;o))


en jouant avec les formats
Pas que je sache (mais je ne sais rien à rien).


@+
FxM

Avatar
jps
se lève trop tôt le FxM....
ou ceci :
Public Function eval(inp)
If Left(inp, 1) = "+ " Then inp = "=" & inp
eval = Application.Evaluate(inp)
End Function

ou ceci :
Public Function eval(inp)
If Left(inp, 1) <>" = " Then inp = "=" & inp
eval = Application.Evaluate(inp)
End Function

si je m'a gouré, ma solution à moi, j'ai peur, devrait être finale....
jps


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

Bonjour et merci pour cette solution, pourtant je bute sur une erreur de
compilation, avec le renseignement suivant: "Argument non facultatif"
le mot left est en sélectionné, la ligne qui commence par public est en
jaune, et moi presque en larmes :-((( et ouverte à la solution!

Y avait pas moyen de parvenir à ce résultat qu'en jouant avec les
formats? même si on doit mettre le signe = ?




Bonjour,

"Argument non facultatif" le mot left est en sélectionné,
J'en ai oublié un bout ! Sorry :o(

if left(inp,1) = "=" ... pour prendre UN caractère à gauche

la ligne qui commence par public est en jaune,
Logique puisqu'Excel vient de hurler sur le left(...)


et moi presque en larmes :-((( et ouverte à la solution!
Faut pas pleurer (dit-il de sa petite voix) et ne me pas me tenter ;o))


en jouant avec les formats
Pas que je sache (mais je ne sais rien à rien).


@+
FxM



Avatar
DanC
Merci, ça marche super!

une virgule manquante et ça tombe dans le "coma"

--
(___) Danielle
(oo) "... A quoi bon la charrue
/------- et la voile, la terre et
|| || la vie sans la liberté?"
||---W|| * - Ralph Waldo Emerson
^^ ^^
"FxM" a écrit dans le message de news:

Bonjour et merci pour cette solution, pourtant je bute sur une erreur de
compilation, avec le renseignement suivant: "Argument non facultatif"
le mot left est en sélectionné, la ligne qui commence par public est en
jaune, et moi presque en larmes :-((( et ouverte à la solution!

Y avait pas moyen de parvenir à ce résultat qu'en jouant avec les
formats? même si on doit mettre le signe = ?




Bonjour,

"Argument non facultatif" le mot left est en sélectionné,
J'en ai oublié un bout ! Sorry :o(

if left(inp,1) = "=" ... pour prendre UN caractère à gauche

la ligne qui commence par public est en jaune,
Logique puisqu'Excel vient de hurler sur le left(...)


et moi presque en larmes :-((( et ouverte à la solution!
Faut pas pleurer (dit-il de sa petite voix) et ne me pas me tenter ;o))


en jouant avec les formats
Pas que je sache (mais je ne sais rien à rien).


@+
FxM



Avatar
FxM
Bonsoir Ôh Maître,

se lève trop tôt le FxM....
Ca ne va pas durer, la retraite approche (on se comprend...).


ou ceci :
If Left(inp, 1) = "+ " Then inp = "=" & inp
If Left(inp, 1) <>" = " Then inp = "=" & inp
si je m'a gouré, ma solution à moi, j'ai peur, devrait être finale....


Euuuhhhh, je suis au regret d'écrire que tu t'as gouré :o)
left(texte , 1) renvoit *UN* seul et unique caractère (celui de gauche)
Donc ="+ " sera toujours faux puisque de longueur 2 et <>" = " sera
toujours vrai puisque de longueur 3. Sorry.

@+
FxM

Avatar
FxM
Merci, ça marche super!

une virgule manquante et ça tombe dans le "coma"



Was my pleasure :o)
Fx