Mais
×

Como usar o Goal Seek no Visual Basic

Atualizado em 21 julho, 2017

Uma das funções mais poderosas do Microsoft Excel é o "Goal Seek" - a possibilidade de encontrar um valor de célula que produz um resultado determinado em outra célula. Normalmente, você pode acessar o Goal Seek através do menu "Dados" ou da guia "Laço", mas se você precisar executar o Goal Seek várias vezes, você pode economizar muito tempo automatizando o processo com uma macro do Visual Basic para Aplicativos (VBA). Felizmente o Goal Seek é totalmente integrado ao VBA, então, é fácil escrever uma macro para usar.

Instruções

Saiba como ganhar tempo usando o Goal Seek no Visual Basic (Jupiterimages/Photos.com/Getty Images)
  1. Abra o documento do Excel no qual você quer executar sua macro Goal Seek.

  2. Localize as duas células nas quais você deseja usar o Goal Seek. A primeira célula deve ser a que tem um objetivo fixo. A segunda célula deve ser aquela cujo valor você permite que o Excel mude para atingir o objetivo. O valor da primeira célula deve ser uma fórmula baseada na segunda célula, ou então, independente de quantas mudanças o Excel faça na segunda célula, nenhuma mudança acontecerá na primeira.

  3. Abra a janela de Macros. No Excel 2007 ou versões mais recentes, clique na guia "Exibição" e clique em "Macros". Nas versões mais antigas do Excel, clique no menu "Ferramentas", escolha a opção "Macro" e depois a opção "Macros".

  4. Digite um nome para sua macro Goal Seek na janela de macros e clique em "Criar". Isso vai abrir o editor do Visual Basic para Aplicativos e exibir o texto da nova Macro, que vai começar como uma sub-rotina em branco assim:

    Sub NomeDaMacro() End Sub

  5. Crie um objeto Range que represente a célula para qual você tem um objetivo definido (a primeira célula do Passo 2). Por exemplo, caso você queira usar o Goal Seek na célula A1, escreva:

    Dim celulaDestino As Range celulaDestino = EstaPasta.Planilha(1).Range("A1")

  6. Crie um objeto Range que represente a célula que você quer que o Excel altere para que a primeira célula tenha o resultado desejado. Por exemplo, caso você queira que o Excel manipule a célula A2, escreva:

    Dim celulaVariavel As Range celulaVariavel = EstaPasta.Planilha(1).Range("A2")

  7. Chame o método GoalSeek no Range da célula objetivo. Como primeiro argumento, coloque o valor que você quer que a célula tenha; como segundo argumento, coloque o Range da célula variável. Por exemplo, caso você queira que o Goal Seek dê 0, escreva:

    celulaDestino.GoalSeek(0, celulaVariavel)

Aviso

  • Como o Visual Basic é muito poderoso, erros em macros VB podem facilmente causar muitos dados em sua planilha. Faça uma cópia de segurança de sua planilha antes de tentar uma macro nova.
Cite this Article A tool to create a citation to reference this article Cite this Article