Inquiridor
Loop para adicionar controles - SOLVER - é possível?

Pergunta
-
Estou utilizando o SOLVER e Formulário para realizar uma tarefa..
Acontece que para definir as restrições precisarei de um Loop que preencherá as varias restrições para o solver...
É possível ter esse controle?
Tentei o seguinte, mas sem sucesso:
Dim h As Integer 'Número de restriçõesDim w As Integer 'Referência para o LoopDim q As String 'Referência para localizar célula que deve ser lidah = Plan1.Range("T8") - 1q = 7 + Range("E2")For w = 1 To hSolverAdd CellRef:="$I$" & q, Relation:="$I$" & q + 1, FormulaText:="$I$" & q + 2q = q + 5 + Range("E2")Next w
O problema é o SolverAdd diz que são tipos incompatíveis..
Alguma dica? Ou outra maneira para fazer varias restrições?
Todas as Respostas
-
Sub Exemplo() Dim h As Integer 'Número de restrições Dim w As Integer 'Referência para o Loop Dim q As String 'Referência para localizar célula que deve ser lida h = Plan1.Range("T8") - 1 q = 7 + Range("E2") For w = 1 To h SolverAdd CellRef:="$I$" & q _ , Relation:=Range("I" & q + 1) _ , FormulaText:=Range("I" & q + 2) q = q + 5 + Range("E2") Next w End Sub
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
-
valeu Benzadeus, mas consegui resolver por outro forum:
http://www.eng-tips.com/viewthread.cfm?qid=330841
só que agora os outro parametros não estão entrando.. não dá erro, fica tudo em branco.. e na tela do SOLVER somente aparece as restrições..
Meu SolverOk ficou assim:
Dim n As Integer ' Procura a última linha preenchida das variáveis
Dim p As Integer
Dim t As Integer
Dim u As Integer
n = Plan1.Range("B65000").End(xlUp).Row
p = Plan1.Range("$E$5").Value
t = Plan1.Range("$T$4").Value
u = Plan1.Range("$E$8:$E$" & n).Value
'Seta os parâmetros iniciais
SolverOk SetCell:="" & p, MaxMinVal:="" & t, ValueOf:=0, ByChange:="$E$8:$E$" & n, _
Engine:=2, EngineDesc:="Simplex LP"
-
-