View Full Version : Otimizar a execução de uma macro que utilize a ferramenta solver?


Pascoal
07-24-2006, 05:37 PM
Boa Tarde!

Ao final da resolução do solver, o Excel gera uma tela solicitando a
confirmação ou não da solução do solver, onde pode-se ter as seguintes
respostas:

- Manter solução do Solver
ou
- Restaurar Valores originais

Considerando que sempre a primeira opção será flegada, é possível fazer com
que a tela não apareça ao final da solução e a macro utilize automaticamente
“ manter a solução do solver”?

Segue abaixo um exemplo simples da macro:

SolverReset
SolverOk SetCell:="$AA$5", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$5"
SolverAdd CellRef:="$Y$5", Relation:=1, FormulaText:="$Y$1"
SolverAdd CellRef:="$Y$5", Relation:=3, FormulaText:="$Y$2"
SolverOk SetCell:="$AA$5", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$5"
SolverSolve
SolverReset
SolverOk SetCell:="$AA$6", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$6"
SolverAdd CellRef:="$Y$6", Relation:=1, FormulaText:="$Y$1"
SolverAdd CellRef:="$Y$6", Relation:=3, FormulaText:="$Y$2"
SolverOk SetCell:="$AA$6", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$6"
SolverSolve
SolverReset
SolverOk SetCell:="$AA$7", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$7"
SolverAdd CellRef:="$Y$7", Relation:=1, FormulaText:="$Y$1"
SolverAdd CellRef:="$Y$7", Relation:=3, FormulaText:="$Y$2"
SolverOk SetCell:="$AA$7", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$7"
SolverSolve
End Sub


Desde já agradeço a atenção,

Att.

Pascoal Boniolo

Pascoal
07-24-2006, 09:21 PM
Resolvido,

Segue a solução a quem interessar:

A função "SolverSolve" deve ser substituída por "SolverSolve
UserFinish:=True"

Att,

Pascoal Boniolo


"Pascoal" escreveu:

> Boa Tarde!
>
> Ao final da resolução do solver, o Excel gera uma tela solicitando a
> confirmação ou não da solução do solver, onde pode-se ter as seguintes
> respostas:
>
> - Manter solução do Solver
> ou
> - Restaurar Valores originais
>
> Considerando que sempre a primeira opção será flegada, é possível fazer com
> que a tela não apareça ao final da solução e a macro utilize automaticamente
> “ manter a solução do solver”?
>
> Segue abaixo um exemplo simples da macro:
>
> SolverReset
> SolverOk SetCell:="$AA$5", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$5"
> SolverAdd CellRef:="$Y$5", Relation:=1, FormulaText:="$Y$1"
> SolverAdd CellRef:="$Y$5", Relation:=3, FormulaText:="$Y$2"
> SolverOk SetCell:="$AA$5", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$5"
> SolverSolve
> SolverReset
> SolverOk SetCell:="$AA$6", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$6"
> SolverAdd CellRef:="$Y$6", Relation:=1, FormulaText:="$Y$1"
> SolverAdd CellRef:="$Y$6", Relation:=3, FormulaText:="$Y$2"
> SolverOk SetCell:="$AA$6", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$6"
> SolverSolve
> SolverReset
> SolverOk SetCell:="$AA$7", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$7"
> SolverAdd CellRef:="$Y$7", Relation:=1, FormulaText:="$Y$1"
> SolverAdd CellRef:="$Y$7", Relation:=3, FormulaText:="$Y$2"
> SolverOk SetCell:="$AA$7", MaxMinVal:=2, ValueOf:="0", ByChange:="$Y$7"
> SolverSolve
> End Sub
>
>
> Desde já agradeço a atenção,
>
> Att.
>
> Pascoal Boniolo
>