Titre du sujet : Re: solver dans macro par lannou le 10/07/2008 18:44:24
Bonjour à tous!
Bon, j'ai résolu mon problème précédent. En fait il fallait que j'active le fichier SOLVER.XLA
Le solveur fonctionne donc automatiquement quand j'appuie sur le bouton.
Par contre, j'ai un autre problème.
En fait le fichier va etre modifié et des données vont etre ajoutées. Il faut donc que je fasse en sorte que le solveur tourne même si on rajoute des données.
Pour ce faire j'ai écrit ce code :
Sub Macro2()
'
i1 = 9 'minimum du compteur de ligne de la colonne B
imax1 = Range("B65536").End(xlUp).Row
i2 = 9 'maximum du compteur de ligne de la colonne F
imax2 = Range("F65536").End(xlUp).Row
SolverReset
SolverOk SetCell:=Range("C" & imax1 + 1), MaxMinVal:=2, ValueOf:="0", ByChange:=Range("C9:C" & imax1)
SolverAdd CellRef:=Range("C9:C" & imax1), Relation:=3, FormulaText:="0"
SolverAdd CellRef:=Range("G9:G" & imax2), Relation:=3, FormulaText:=Range("H9:H" & imax2)
SolverOk SetCell:=Range("C" & imax1 + 1), MaxMinVal:=2, ValueOf:="0", ByChange:=Range("C9:C" & imax1)
SolverOptions MaxTime:=100, Iterations:=100, Precision:=0.000001, AssumeLinear _
:=True, StepThru:=False, Estimates:=1, Derivatives:=1, SearchOption:=1, _
IntTolerance:=5, Scaling:=False, Convergence:=0.0001, AssumeNonNeg:=False
SolverOk SetCell:=Range("C" & imax1 + 1), MaxMinVal:=2, ValueOf:="0", ByChange:=Range("C9:C" & imax1)
SolverSolve userFinish:=True
End Sub
Or la macro plante quand elle arrive à la ligne " SolverAdd CellRef:=Range("G9:G" & imax2), Relation:=3, FormulaText:=Range("H9:H" & imax2)"
Le message suivant apparaît : "Solver : an unexpected internal error, or available memory was exhausted"
Savez vous pourquoi j'ai ce message? Y a t'il une erreur dans le code que j'ai écrit? Comment faire en sorte que macro tourne?
Merci à vous tous!
|