Função SolverSolve

Começar uma execução de solução do Solver. É equivalente a clicar em Resolver na caixa de diálogo Parâmetros do Solver.

Nota O suplemento Solver não está habilitado por padrão. Antes de poder usar esta função, você deve ter o suplemento Solver habilitado e instalado. Para saber mais sobre como fazer isso, consulte Usando as funções VBA do Solver. Após a instalação do suplemento Solver, você deverá estabelecer uma referência para o suplemento Solver. No Editor do Visual Basic, com um módulo ativo, clique em Referências, no menu Ferramentas e clique em Solucionador nas Referências disponíveis. Se o Solver não aparecer em Referências Disponíveis, clique em Procurar e então abra Solver.xlam na subpasta \Arquivos de Programas\Microsoft Office\Office14\Biblioteca\SOLVER.

SolverSolve( UserFinish, ShowRef)

UserFinish Opcional Variante. True para retornar os resultados sem exibir a caixa de diálogo Resultados do Solver. False ou omitido para retornar os resultados e exibir a caixa de diálogo Resultados do Solver. ShowRef Opcional Variante. Você pode passar o nome de uma macro (como uma cadeia de caracteres) como o argumento ShowRef . Essa macro é então chamada, em vez de exibir a caixa de diálogo Mostrar solução de avaliação, sempre que o Solver pausar por qualquer um dos motivos listados abaixo. A macro ShowRef deve ter o nome da função de assinatura (Reason As Integer). O argumento Razão é um valor inteiro de 1 a 5:

  1. Função chamada (em todas as iterações) porque a caixa Mostrar Resultados da Iteração na caixa de diálogo Opções do Solver foi marcada ou função chamada porque o usuário pressionou ESC para interromper o Solver.

  2. Função chamada porque o limite Tempo Máximo na caixa de diálogo Opções do Solver foi excedida.

  3. Função chamada porque o limite Iterações na caixa de diálogo Opções do Solver foi excedido.

  4. Função chamada porque o limite Subproblemas Máximos na caixa de diálogo Opções do Solver foi excedido.

  5. Função chamada porque o limite Soluções Viáveis Máximas na caixa de diálogo Opções do Solver foi excedido.

A função macro deve retornar 1 se o Solver deve parar (o mesmo que o botão Parar na caixa de diálogo Mostrar solução de avaliação ) ou 0 se o Solver deve continuar em execução (igual ao botão Continuar ). A macro ShowRef pode inspecionar os valores atuais da solução na planilha ou executar outras ações, como salvar ou mapear os valores intermediários. No entanto, não deve alterar os valores nas células variáveis ou alterar as fórmulas de objeto e de restrição, pois isso poderia afetar de maneira adversa o processo da solução.

Valor de retorno de SolverSolve

Se um problema do Solver não tiver sido completamente definido, o SolverSolve retornar o valor de erro #N/A. Caso contrário, o Solver é executado, e SolverSolve retorna um valor inteiro correspondente à mensagem que aparece na caixa de diálogo Resultados do Solver:

Valor de retorno Mensagem
0 O Solver encontrou uma solução. Todas as restrições e as condições ideais são satisfeitas.
1 O Solver convergiu para a solução atual. Todas as restrições são atendidas.
2 O Solver não conseguiu melhorar a solução atual. Todas as restrições são atendidas.
3 Parar o escolhido quando o limite máximo de iteração tiver sido atingido.
4 Os valores da Célula Objetiva não convergem.
5 O Solver não conseguiu encontrar uma solução viável.
6 O Solver parou na solicitação do usuário.
7 As condições de linearidade necessários a este Solver LP não são satisfeitas.
8 O problema é muito grande para que o Solver lide com ele.
9 O Solver encontrou um valor de erro em uma célula de destino ou de restrição.
10 Parar o escolhido quando o limite máximo de tempo tiver sido atingido.
11 Não há memória suficiente disponível para resolver o problema.
13 Erro no modelo. Verifique se todas as células e restrições são válidas.
14 O Solver encontrou uma solução inteira na tolerância. Todas as restrições são atendidas.
15 Parar o escolhido quando o número máximo de soluções viáveis [número inteiro] tiver sido atingido.
16 Parar o escolhido quando o número máximo de [número inteiro] subproblemas viáveis tiver sido atingido.
17 O Solver convergiu em probabilidade para uma solução global.
18 Todas as variáveis devem ter limites superior e inferior.
19 Conflito de limites de variável em restrição binária ou totalmente diferente.
20 Limites inferior e superior em variáveis não permitem solução viável.

Exemplo

Este exemplo usa as funções do Solver para maximizar o lucro bruto em um problema de negócios. A função SolverSolve inicia a execução da solução do Solver. O Solver chama a função ShowTrial quando qualquer uma das cinco condições descritas acima ocorre; a função simplesmente exibe uma mensagem com os valores inteiro 1 a 5.

Worksheets("Sheet1").Activate 
SolverReset 
SolverOptions Precision:=0.001 
SolverOK SetCell:=Range("TotalProfit"), _ 
    MaxMinVal:=1, _ 
    ByChange:=Range("C4:E6") 
SolverAdd CellRef:=Range("F4:F6"), _ 
    Relation:=1, _ 
    FormulaText:=100 
SolverAdd CellRef:=Range("C4:E6"), _ 
    Relation:=3, _ 
    FormulaText:=0 
SolverAdd CellRef:=Range("C4:E6"), _ 
    Relation:=4 
SolverSolve UserFinish:=False, ShowRef:= "ShowTrial" 
SolverSave SaveArea:=Range("A33") 
 
Function ShowTrial(Reason As Integer) 
  Msgbox Reason 
  ShowTrial = 0 
End Function

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.