Ir ao conteúdo
  • Cadastre-se
Daredevil1992

Excel Macro atingir meta assim que alterar valor células

Recommended Posts

Fala galera!

Estou com uma planilha que recebe alguns dados de entrada, e então utiliza o comando atingir meta = 0  para resolver uma equação iterativa.

No caso, preciso automatizar isso, para que, quando altere algum dos dados de entrada, o comando atingir meta seja automaticamente acionado, e a equação seja resolvida. 

No momento tenho que fazer isso manualmente, sempre quando altero um dos dados de entrada relacionados à essa equação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde@Daredevil1992

 

Como você não anexou uma planilha de exemplo, fica difícil do pessoal ajudar.

Já temos vários tópicos no fórum sobre o assunto, como esses:

 

Se foi útil, clique em curtir.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Patropi

 

Aqui está a macro que criei, mas não está funcionando sempre. Estou achando estranho, pois em alguns momentos o comando atingir meta é ativado, em outros não.

 

Private Sub Worksheet_Change(ByVal Target As Range)

Dim linha As Integer
Dim coluna As Integer

coluna = Target.Column
linha = Target.Row

If (linha = 25 And coluna = D) Then
Call atingirmeta
End If
If (linha = 26 And coluna = D) Then
Call atingirmeta
End If
If (linha = 27 And coluna = D) Then
Call atingirmeta
End If
If (linha = 28 And coluna = D) Then
Call atingirmeta
End If
If (linha = 29 And coluna = D) Then
Call atingirmeta
End If


End Sub

Sub atingirmeta()

Range("L46").GoalSeek Goal:=0, ChangingCell:=Range("K50")

End Sub
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Patropi

 

Consegui fazer o que precisava. Agradeço o auxílio. Estou postando aqui o que fiz, para ajudar outros que precisarem. Basicamente eu fiz com que, quando eu altere as células D25:D29, ele ative a macro automaticamente, fazendo um goal seek (atingir meta) para a célula L46=0, alterando célula K50. No meu caso, esse comando foi útil para automatizar a resolução de uma equação implícita, quando algumas variáveis(dados de entrada) são alterados.

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

    
    Set KeyCells = Range("D25:D29")
    
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

       
        
        Range("L46").GoalSeek Goal:=0, ChangingCell:=Range("K50")
        
        MsgBox "Comando goal seek, na célula L46=0, ativado."
       
    End If
End Sub

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×