SOLVEUR EXCEL

  • Initiateur de la discussion Karim
  • Date de début
K

Karim

Guest
Bonjour!!!

J'ai un problème avec le solveur EXCEL:

Lorsque je le lance à partir de ma fenêtre EXCEL tout bien paramétré, il tourne et me fournit des résultats sur une équation un peu compliquée (NonLinéaire:y=x LN(x)).

Ayant pas mal de données à traiter, je me suis lancé dans l'écriture d'une macro pour automatisre l'utilisation du solveur.

J'ai mis la macro complète en pièce jointe (.txt) et le module qui pose problème est : Sub EXTRACTION_hr_et_Calcul_sy_et_n()

Lorsqu'on arrive dessus EXCEL affiche un message d'erreur:"Solveur: Une erreur est suvenue, ou la mémoire disponible est insuffisante"

Et celà pour les mêmes valeurs cibles et variables que précédemment.

Je ne comprends pas!!!

Merci de votre aide!!!

Karim
 

Pièces jointes

  • MACROEXCEL.zip
    2.5 KB · Affichages: 35
  • MACROEXCEL.zip
    2.5 KB · Affichages: 41
  • MACROEXCEL.zip
    2.5 KB · Affichages: 41
M

Michel_M

Guest
Bonjour Karim,

Tu as 2 fois la ligne d'initialisation du solveur:
SolverOk SetCell:="$U$" & J, MaxMinVal:=3, ValueOf:="1", ByChange:="$S$" & J & ",$T$" & J

peut-être que "solverOksetcells..." est de trop après solveradd et solveroptions

Bon courage
Michel
 
K

Karim

Guest
Merci pour ta réponse Michel!

J'ai bien viré la ligne de code en trop mais le message d'erreur persiste.
Revoilà le code actuel:

Sub EXTRACTION_hr_et_Calcul_sy_et_n(Num As Integer)

Dim NomFichierExcelOuvert As String
Dim I As Integer, J As Integer

NomFichierExcelOuvert = ActiveWorkbook.Name
AddIns("Complément Solver").Installed = True

Application.DisplayAlerts = False

For I = 1 To Workbooks(NomFichierExcelOuvert).Worksheets("CALCUL H & E").Cells(9, 2).Value
J = I + 25
Worksheets("ESSAI " & I).Select
Worksheets("Calcul H & E").Cells(J, 10) = Identification_Valeur_Min()
Worksheets("Calcul H & E").Activate

SolverReset

SolverOk SetCell:="$U$" & J, MaxMinVal:=3, ValueOf:="1", ByChange:="$S$" & J & ",$T$" & J
SolverAdd CellRef:="$T$" & J, Relation:=2, FormulaText:="$Q$" & J & "+$S$" & J
SolverAdd CellRef:="$S$" & J, Relation:=3, FormulaText:="0,01"
SolverOptions MaxTime:=100, _
Iterations:=1000, _
Precision:=0.0000001, _
AssumeLinear:=False, _
StepThru:=False, _
Estimates:=2, _
Derivatives:=2, _
SearchOption:=1, _
IntTolerance:=1, _
Scaling:=False, _
Convergence:=0.00001, _
AssumeNonNeg:=True

Next I

Application.DisplayAlerts = True

End Sub
 
M

Michel_M

Guest
Re Karim

Dans ce dernier code, je n'ai pas lu Solversolve... mais je ne pense pas que l'erreur vienne de là car il sagirait alors d'un message du débogueur et non du solveur.
D'autre part, tu indiques que ca marche sans macro (je pensais à opton convergence et option précision)

Donc, je sèche

Michel
 
K

Karim

Guest
Merci quand même Michel!!!

Quand je l'execute directement sous Excel (Le solveur) il me donne des résultats mais il n'arrive pas au bout :"Le solveur ne peut pas trouver de solution réalisable" (Il n'arrive pas à respecter une de mes contraintes mais il me sort tout de même la derniere itération!

Alors que quand je le lance à partir de ma macro, il plante juste avant "SolverSolve", il ne fait aucune itération et Excel me renvoie le fameux message d'erreur "...mémoire insuffisante"

Je pense donc qu'il s'agit de 2 pbs distincts et je ne comprends pas pourquoi il ne se lance pas à partir de la macro!!!

Enfin, merci quand même pour ton aide!!

Karim
 

Discussions similaires

M
Réponses
4
Affichages
10 K
Michel_M
M