OVH Cloud OVH Cloud

Re: Solveur dans une formule

3 réponses
Avatar
Jack
Merci pour ta réponse. J'ai essayé ce code et ça marche effectivement. En
fait je n'ai jamais utilisé les macros VBA, d'ou ma question: Existe-t-il un
moyen pour qu'il appelle automatiquement cette macro à chaque recalcul de la
feuille ?
En fait je voudrais que ce soit transparent pour l'utilisateur ... Ce serait
bien aussi s'il n'affichait pas la fenetre du solveur après avoir trouvé le
résultat.
Merci d'avance pour votre aide,
Jack

"garnote" <rien@absent.net> a écrit dans le message de
news:BYO%b.84398$2g.65676@charlie.risq.qc.ca...
> Salut Jack,
>
> Avec une formule, je ne crois pas.
> Tu pourrais peut-être te construire une macro
> en prenant soin, dans le VBE, de cliquer sur :
> Outils / Références... et de cocher SOLVER.xls.
>
> Un petit exemple à adapter :
>
> Sub Solveur()
> SolverOk SetCell:="$C$19", MaxMinVal:=3, _
> ValueOf:="12", ByChange:="$C$17:$D$17"
> SolverAdd CellRef:="$C$17:$D$17", Relation:=4, _
> FormulaText:="entier"
> SolverOk SetCell:="$C$19", MaxMinVal:=3, ValueOf:="12", _
> ByChange:="$C$17:$D$17"
> SolverSolve
> End Sub
>
> Serge
>
>
>
> "Jack" <jean.kulle@le.spam> a écrit dans le message de news:
> 403fb8f5$0$28437$636a15ce@news.free.fr...
> > Bonjour,
> >
> > J'utilise Excel 2000 pour des calculs d'ingénierie et j'aimerais savoir
> s'il
> > est possible d'utiliser le solveur directement dans une formule, du
genre
> > =SOLVE(...) en précisant l'intervalle de recherche etc. Au cours des
> calculs
> > j'ai plusieurs polynomes du 5eme degré à résoudre, et le solveur le fait
> > très bien à la main, mais je voudrais automatiser ça, pour pouvoir le
> faire
> > rapidement pour un grand nombre de données.
> > Merci pour votre aide !
> > Jack
> >
> >
>

3 réponses

Avatar
garnote
Salut Jack,

SolverSolve Userfinish:=True
permet de garder la solution sans qu'une
boîte de dialogue ne s'affiche :

Sub Solveur()
SolverOk _
SetCell:="$C$19", _
MaxMinVal:=3, _
ValueOf:="12", _
ByChange:="$C$17:$D$17"
SolverAdd _
CellRef:="$C$17:$D$17", _
Relation:=4, _
FormulaText:="entier"
SolverOk _
SetCell:="$C$19", _
MaxMinVal:=3, _
ValueOf:="12", _
ByChange:="$C$17:$D$17"
SolverSolve Userfinish:=True
End Sub

Serge


"Jack" a écrit dans le message de news:
4040b0ed$0$28429$
Merci pour ta réponse. J'ai essayé ce code et ça marche effectivement. En
fait je n'ai jamais utilisé les macros VBA, d'ou ma question: Existe-t-il
un

moyen pour qu'il appelle automatiquement cette macro à chaque recalcul de
la

feuille ?
En fait je voudrais que ce soit transparent pour l'utilisateur ... Ce
serait

bien aussi s'il n'affichait pas la fenetre du solveur après avoir trouvé
le

résultat.
Merci d'avance pour votre aide,
Jack

"garnote" a écrit dans le message de
news:BYO%b.84398$
Salut Jack,

Avec une formule, je ne crois pas.
Tu pourrais peut-être te construire une macro
en prenant soin, dans le VBE, de cliquer sur :
Outils / Références... et de cocher SOLVER.xls.

Un petit exemple à adapter :

Sub Solveur()
SolverOk SetCell:="$C$19", MaxMinVal:=3, _
ValueOf:="12", ByChange:="$C$17:$D$17"
SolverAdd CellRef:="$C$17:$D$17", Relation:=4, _
FormulaText:="entier"
SolverOk SetCell:="$C$19", MaxMinVal:=3, ValueOf:="12", _
ByChange:="$C$17:$D$17"
SolverSolve
End Sub

Serge



"Jack" a écrit dans le message de news:
403fb8f5$0$28437$
Bonjour,

J'utilise Excel 2000 pour des calculs d'ingénierie et j'aimerais
savoir



s'il
est possible d'utiliser le solveur directement dans une formule, du
genre


=SOLVE(...) en précisant l'intervalle de recherche etc. Au cours des
calculs

j'ai plusieurs polynomes du 5eme degré à résoudre, et le solveur le
fait



très bien à la main, mais je voudrais automatiser ça, pour pouvoir le
faire

rapidement pour un grand nombre de données.
Merci pour votre aide !
Jack











Avatar
Jack
OK.
Et y'a-t-il un moyen pour executer automatiquement cette macro a chaque
recalcul de la feuille ? Avec ça la feuille sera parfaite :)
Merci beaucoup,
jack

"garnote" a écrit dans le message de
news:NE30c.87560$
Salut Jack,

SolverSolve Userfinish:=True
permet de garder la solution sans qu'une
boîte de dialogue ne s'affiche :

Sub Solveur()
SolverOk _
SetCell:="$C$19", _
MaxMinVal:=3, _
ValueOf:="12", _
ByChange:="$C$17:$D$17"
SolverAdd _
CellRef:="$C$17:$D$17", _
Relation:=4, _
FormulaText:="entier"
SolverOk _
SetCell:="$C$19", _
MaxMinVal:=3, _
ValueOf:="12", _
ByChange:="$C$17:$D$17"
SolverSolve Userfinish:=True
End Sub

Serge


Avatar
garnote
Tu pourrais essayer cette macro de feuille :
Private Sub Worksheet_Calculate()
Solveur
End Sub

Mais pour une raison que j'ignore, la macro Solveur
s'exécute très lentement.

Serge




"Jack" a écrit dans le message de news:
4040c99f$0$28433$
OK.
Et y'a-t-il un moyen pour executer automatiquement cette macro a chaque
recalcul de la feuille ? Avec ça la feuille sera parfaite :)
Merci beaucoup,
jack

"garnote" a écrit dans le message de
news:NE30c.87560$
Salut Jack,

SolverSolve Userfinish:=True
permet de garder la solution sans qu'une
boîte de dialogue ne s'affiche :

Sub Solveur()
SolverOk _
SetCell:="$C$19", _
MaxMinVal:=3, _
ValueOf:="12", _
ByChange:="$C$17:$D$17"
SolverAdd _
CellRef:="$C$17:$D$17", _
Relation:=4, _
FormulaText:="entier"
SolverOk _
SetCell:="$C$19", _
MaxMinVal:=3, _
ValueOf:="12", _
ByChange:="$C$17:$D$17"
SolverSolve Userfinish:=True
End Sub

Serge