OVH Cloud OVH Cloud

Module Eval

3 réponses
Avatar
Olivier Gairaud
Bonjour,

J'utilise le module ci-dessous pour calculer le résultat d'une formule
visible (développée de calcul) dans la cellule adjacente :

Function Eval(Rg As Range)
Eval = Evaluate("=" & Rg)
End Function

Malheureusement, de temps en temps, après modification de la formule, le
résultat Eval ne se mets pas à jour automatiquement et peut être une source
d'erreur grossière.

Exemple :
A1 / 10*100 B1 / =Eval(A1), donc 1000
De temps en temps si je modifie A1 :
A1 / 20*100 B1 / =Eval(A1), j'obtiens toujours 1000 !!!

Quelqu'un aurait-il une idée pour que chaque fois que je modifie la formule,
le résultat soit juste ?

Merci à tous...

Meilleures salutations
Gairaud Olivier

3 réponses

Avatar
Jacky
Bonjour,
Ceci peut-être:
'--------
Function Eval(Rg As Range)
Application.Volatile
Eval = Evaluate("=" & Rg)
End Function
"--------
Un petit coup de F1 sur Volatile pour les explications.

Salutations
JJ


"Olivier Gairaud" a écrit dans le message de
news:OP7G%
Bonjour,

J'utilise le module ci-dessous pour calculer le résultat d'une formule
visible (développée de calcul) dans la cellule adjacente :

Function Eval(Rg As Range)
Eval = Evaluate("=" & Rg)
End Function

Malheureusement, de temps en temps, après modification de la formule, le
résultat Eval ne se mets pas à jour automatiquement et peut être une
source

d'erreur grossière.

Exemple :
A1 / 10*100 B1 / =Eval(A1), donc 1000
De temps en temps si je modifie A1 :
A1 / 20*100 B1 / =Eval(A1), j'obtiens toujours 1000 !!!

Quelqu'un aurait-il une idée pour que chaque fois que je modifie la
formule,

le résultat soit juste ?

Merci à tous...

Meilleures salutations
Gairaud Olivier




Avatar
Olivier Gairaud
Merci...on va tester...

Par contre peu voir pas d'explication sur le volatile avec un bon coup de F1
! :-)
Peut-être une question de version (Excel 2002 SP3) ?

Meilleures salutations
Olivier

"Jacky" a écrit dans le message de news:
%
Bonjour,
Ceci peut-être:
'--------
Function Eval(Rg As Range)
Application.Volatile
Eval = Evaluate("=" & Rg)
End Function
"--------
Un petit coup de F1 sur Volatile pour les explications.

Salutations
JJ


"Olivier Gairaud" a écrit dans le message de
news:OP7G%
Bonjour,

J'utilise le module ci-dessous pour calculer le résultat d'une formule
visible (développée de calcul) dans la cellule adjacente :

Function Eval(Rg As Range)
Eval = Evaluate("=" & Rg)
End Function

Malheureusement, de temps en temps, après modification de la formule, le
résultat Eval ne se mets pas à jour automatiquement et peut être une
source

d'erreur grossière.

Exemple :
A1 / 10*100 B1 / =Eval(A1), donc 1000
De temps en temps si je modifie A1 :
A1 / 20*100 B1 / =Eval(A1), j'obtiens toujours 1000 !!!

Quelqu'un aurait-il une idée pour que chaque fois que je modifie la
formule,

le résultat soit juste ?

Merci à tous...

Meilleures salutations
Gairaud Olivier








Avatar
Jacky
Re...
Par contre peu voir pas d'explication sur le volatile
Sûrement une option non cochée lors de l'installation.


Copie:

'---Début de la copie-----
Marque comme volatile une fonction personnalisée. Une fonction volatile doit
être recalculée chaque fois qu'un calcul est effectué dans une cellule
quelconque de la feuille de calcul. Une fonction non volatile n'est
recalculée qu'en cas de changement des variables d'entrée. Cette méthode est
sans effet si elle ne se trouve pas à l'intérieur d'une fonction définie par
l'utilisateur utilisée pour calculer une cellule de feuille de calcul.

Syntaxe

expression.Volatile(Volatile)

expression Obligatoire. Expression qui renvoie un objet Application.

Volatile Argument de type Variant facultatif. Affectez-lui la valeur True
pour marquer la fonction comme volatile et la valeur False pour la marquer
comme non volatile. La valeur par défaut est True.
'-----fin de la copie----

Salutations
JJ

"Olivier Gairaud" a écrit dans le message de
news:
Merci...on va tester...

Par contre peu voir pas d'explication sur le volatile avec un bon coup de
F1

! :-)
Peut-être une question de version (Excel 2002 SP3) ?

Meilleures salutations
Olivier

"Jacky" a écrit dans le message de news:
%
Bonjour,
Ceci peut-être:
'--------
Function Eval(Rg As Range)
Application.Volatile
Eval = Evaluate("=" & Rg)
End Function
"--------
Un petit coup de F1 sur Volatile pour les explications.

Salutations
JJ


"Olivier Gairaud" a écrit dans le message de
news:OP7G%
Bonjour,

J'utilise le module ci-dessous pour calculer le résultat d'une formule
visible (développée de calcul) dans la cellule adjacente :

Function Eval(Rg As Range)
Eval = Evaluate("=" & Rg)
End Function

Malheureusement, de temps en temps, après modification de la formule,
le



résultat Eval ne se mets pas à jour automatiquement et peut être une
source

d'erreur grossière.

Exemple :
A1 / 10*100 B1 / =Eval(A1), donc 1000
De temps en temps si je modifie A1 :
A1 / 20*100 B1 / =Eval(A1), j'obtiens toujours 1000 !!!

Quelqu'un aurait-il une idée pour que chaque fois que je modifie la
formule,

le résultat soit juste ?

Merci à tous...

Meilleures salutations
Gairaud Olivier