Objetivo do VBA Buscar no Excel em células diferentes toda vez

0

Estou fazendo uma planilha do Excel para investir.

Eu tenho as seguintes colunas:

  • A mostrando o ano (1, 2, 3, 4, 5, etc.)
  • B mostrando o custo anual
  • C mostrando a receita anual
  • D mostrando o custo / receita total (B menos C) para o ano
  • E mostrando a receita / perda geral

Agora ...

Eu quero ter uma meta de busca automática quando clico em um botão. Eu quero que o objetivo busque a ÚLTIMA CÉLULA COM UM NÚMERO NELA. Ou seja, se eu tenho um investimento com 10 anos, deveria E10. Se tiver 5 anos, E5 etc.

Não consigo encontrar nada sobre este assunto. Eu quero que a meta busque a ÚLTIMA CÉLULA COM UM NÚMERO no valor 0.

Como posso fazer isso em uma rotina VBA?

A propósito, eu tenho uma célula que me mostra o nome da ÚLTIMA CÉLULA COM UM NÚMERO. Diz como "E3" se é E3.

    
por Jonathan 26.04.2017 / 15:49

1 resposta

0

Algo como isso deve ser feito:

Sub GoalSeek()
    Const csOverallSt As String = "E1"
    Const csChangeCol As String = "C"
    Const ciGoal As Integer = 0

    Dim rngCheck As Range

    Set rngCheck = Range(csOverallSt)
    Do While rngCheck.Offset(1, 0).Value <> ""
        Set rngCheck = rngCheck.Offset(1)
    Loop

    rngCheck.GoalSeek goal:=ciGoal, changingcell:=Range(csChangeCol & rngCheck.Row)
End Sub

A constante csOverallSt define a primeira célula que você deseja verificar por um espaço em branco - assim você não precisa definir a célula extra que é a primeira célula em branco. A constante csChangeCol define qual coluna contém o valor que você deseja que o processo de busca da meta mude. A constante ciGoal define o valor que a Meta de meta deve procurar. A variável rngCheck define um intervalo de células ou, como estamos usando aqui, uma única célula.

O procedimento começa atribuindo rngCheck para corresponder à célula que você definiu em csOverallSt . Em seguida, ele verifica se a célula abaixo de rngCheck está em branco; se não for, move rngCheck por uma linha e verifica novamente. Ele continuará fazendo isso até encontrar uma célula em branco.

Quando encontrar a célula em branco, ela realizará uma busca de meta, tentando definir o valor em rngCheck para o valor definido em ciGoal alterando o valor na coluna definida em csChangeCol e o mesmo linha como rngCheck .

    
por 27.04.2017 / 15:52