Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion CISCO
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CISCO

XLDnaute Barbatruc
Bonjour à tous

grace à l'aide du forum, j'ai fait un petit fichier permettant de vérifier la "justesse" d'équations du 1er degré (cf le fil "Vérification d'équations du 1er degré). Pour cela, j'utilise la macro eval (cf le fichier ci-joint).

Ca tourne pas mal du tout (plus de 160 équations testées) mais malheureusement la formule utilisée ne semble pas totalement "universelle". Je m'explique :
Pourquoi la fonction eval m'envoie t'elle le message faux avec l'équation 6*x + 66 = (16 * x + 6 * x ) * 2, et vrai avec 3*x+33=(8*x+3*x)*2 avec la solution x = 66/38, alors que ce sont les "mêmes" équations (cf à la fin du fichier ci-joint quelques exemples) ?

Merci d'avance à tous
 

Pièces jointes

Re : Macro Eval

Bonsoir

ligne 40
En décomposant les différents éléments de l'équation on obtient comme résultat

6*(66/38)+66=(16*(66/38)+6*(66/38))*2

le calcul donne
6*(66/38)+66=76,421052631579

(16*(66/38)+6*(66/38))*2=76,4210526315789

ligne 38
3*(66/38)+33=(8*(66/38)+3*(66/38))*2

38,21052631578950
38,21052631578950

On retrouve les problèmes des arrondis et des algorithmes de calcul des puissances.

JP
 
Re : Macro Eval

Merci JP,

je me doutais bien que c'était une erreur d'arrondi, mais ne connaissant pas exactement la description de la macro eval, et n'ayant fait la vérification de l'équation 6*(66/38)... qu'en affichant 7 chiffres après la virgule, j'espèrais un autre problème. Il ne me reste plus qu'à modifier le contenu de la formule...

Encore merci.
 
Re : Macro Eval

Bonjour,

avec cette formule (proche de la tienne) ça passe :
=SI(ESTLOGIQUE(eval(SUBSTITUE(B40;"x";$H40)));eval(SUBSTITUE(B40;"x";$H40));"")

la différence, ce sont les parenthèses, absentes ici, qui ne forcent donc pas le calcul de x et donc diminue le risque d'erreur d'arrondi

A+

PS : je viens de me rendre compte que EVAL est une fonction de MOREFUNC de laurent Longre
 
Re : Macro Eval

Bonjour.

Merci, ODVJ, ta formule fonctionne... malheureusement, pas tout le temps.

Si on enlève les (), il y a un petit problème : si par exemple, dans les calculs intervient 2/x, avec x = 5/7, 2/5/7 <> 2/(5/7) (car 2/5/7 = 0,057... et 2/(5/7) = 2,8). C'est un problème de priorité. Pour le résoudre, il faut placer des () dans la colonne H ou faire lire les solutions x dans une nouvelle colonne où les () auront été placées automatiquement.

Cherchant à faire un petit programme très polyvalent, je ne trouve pas cette dernière solution très pratique pour le futur utilisateur (prof de maths, collégien...).

J'ai contourné le problème avec la fonction ARRONDI, mais ça m'a fait des formules à rallonge. Ce n'est pas très "esthétique", mais ça marche. On peut aussi arranger ça en nommant la formule (cf le fil nouvelle astuce : LIRE.CELLULE), mais alors ce n'est plus très compréhensible. Il y a certainement encore d'autres possibilités.

Dès que j'aurai trouvé un truc vraiment polyvalent, esthétique, qui trouve automatiquement la solution x quelle que soit la forme de l'équation, plus ou moins "tordue" (2/(x-2)= ...), avec moins d'erreur d'arrondi, je le mettrai sur ce fil. Ca peut toujours servir.

Merci à tous.

P.S : En me baladant sur le forum, je viens de voir qu'il y a pas mal de discussions anciennes sur la fonction EVAL (cf MOREFUNC de Laurent Longre). Dommage qu'on ne puisse pas toujours deviner, facilement, d'après le titre ou la question (Ne connaissant pas la fonction EVAL, je ne pouvais pas faire une recherche sur ce mot avant de démarrer la discussion "Vérification d'équation du 1er degré"...). Il y avait pourtant des sujets similaires au mien (ex le fil : formule sans "=").

Conclusion :
1) On devrait davantage fouiller dans le forum.
2) L'auteur d'une discussion devrait pouvoir modifier les titres des discussions qu'il a ouvert, en fonction du contenu ou de l'avancement de la discussion (par ex y indiquer les fonctions importantes utilisées).

Tout simplement, ne serait-il pas possible de finir les titres par le texte (en cours), tant que le pb n'est pas résolu, à transformer ensuite par (pb résolu) lorsque la solution a été trouvée, histoire de mettre en valeur les discussions non closes, histoire de pouvoir cibler rapidement les coup de mains à donner.

Encore une fois, remercie.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
1 K
S
Réponses
2
Affichages
1 K
D
Réponses
4
Affichages
1 K
A
Réponses
2
Affichages
3 K
A
Y
Réponses
1
Affichages
793
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…