Problème solveur dans une cellule

Bonjour à tous =).

Je rencontre un problème sur excel, je m'explique :

Dans ma feuille de calcul je désire faire un calcul sous condition :

=SI(Re>3000;solverok(cible;3;0;f;1);64/Re)

Si ma cellule Re est supérieur à 3000 j'utilise le solver en faisant varier ma cellule f pour que ma cellule cible soit égal à 0.

mon équation de cellule cible est la suivante : =1/RACINE(f)+2*LOG10(3,7*Rr+(2,51/(Re*RACINE(f))))

Sinon ma cellule f = 64/Re

Je ne sais pas où je fais une erreur mais ma cellule variable f me retourne "valeur" et donc ma cellule cible également puisqu'elle dépend de f. lorsque j'utilise le solver depuis l'onglet solver avec les même paramètres cela fonctionne donc je fais probablement une erreur avec la fonction SolverOk que je ne connais pas très bien ...

Quelqu'un pourrait m'aider SVP ?

Merci

Bonjour,

Bonjour,

Yes, ce sera plus simple c'est vrai

bonsoir,

je n'ai pas trouvé de document indiquant que solverok puisse être utilisé comme une fonction excel. Et vu les règles qui s'appliquent aux fonctions personnalisées (j'assimile solverok à ce groupe), elle ne peut pas fonctionner.

Je te propose donc une solution via une macro, macro qui se déclenche lors d'une modification qui impacte les cellule C13 ou C14

bonsoir,

je n'ai pas trouvé de document indiquant que solverok puisse être utilisé comme une fonction excel. Et vu les règles qui s'appliquent aux fonctions personnalisées (j'assimile solverok à ce groupe), elle ne peut pas fonctionner.

Je te propose donc une solution via une macro, macro qui se déclenche lors d'une modification qui impacte les cellule C13 ou C14

Bonsoir ,

tout d'abord merci pour ton aide je ne savais pas que la fonction SolverOk ne pouvait pas être utilisé comme une fonction excel. je vais devoir me mettre au VBA ... saurais tu comment je peux ajouter une condition pour que si la cellule C13 <= 2000 alors la cellule C15 = 64/C13 et que sinon la cellule C15 est "résolu" par le solveur excel comme sur la version actuel de la feuille ?

Merci !

bonsoir,

j'ai fait la modification pour 2000 (mais tu disais 3000 dans ta demande initiale)

si tu dois modifier, adapte ce code dans module1

Sub aargh()
    If Range("C13") <= 2000 Then
        Range("C15") = 64 / Range("C13")
    Else
        Range("C15") = 0.00001
        SolverOk SetCell:="$G$15", MaxMinVal:=3, ValueOf:=0, ByChange:="$C$15", Engine:=1, EngineDesc:="GRG Nonlinear"
        SolverSolve
    End If
End Sub

bonsoir,

j'ai fait la modification pour 2000 (mais tu disais 3000 dans ta demande initiale)

si tu dois modifier, adapte ce code dans module1

Sub aargh()
    If Range("C13") <= 2000 Then
        Range("C15") = 64 / Range("C13")
    Else
        Range("C15") = 0.00001
        SolverOk SetCell:="$G$15", MaxMinVal:=3, ValueOf:=0, ByChange:="$C$15", Engine:=1, EngineDesc:="GRG Nonlinear"
        SolverSolve
    End If
End Sub

Bonjour,

Ca fonctionne, merci beaucoup !

Rechercher des sujets similaires à "probleme solveur"