Pessoal, boa tarde
Estou com uma dúvida com relação a uma macro de atingimento de meta. Para contextualizar, eu preciso realizar um atingir meta para cada linha, onde a célula de definição é o Total (Coluna AH), a meta é o valor do investimento (coluna BA) que mudará para cada linha e será o input que a área colocará e alternando a célula Event (coluna Z), então é um caso de atingir meta com variação do valor de meta.
Eu criei a seguinte Macro:
Sub AtingirMeta()
Dim MargemDesejavel As Double
MargemDesejavel = Range("BA" & ActiveCell.Row).Value
Range("AH3").Select
While ActiveCell.Value <> ""
' AtingirMeta Macro
'
'
ActiveCell.GoalSeek Goal:=MargemDesejavel, ChangingCell:=Range("Z" & ActiveCell.Row)
ActiveCell.Offset(1, 0).Select
Wend
End Sub
----------------
Porém ela não funciona, ela faz o "atingir meta" para um único valor de meta que é o da primeira linha. Vocês conseguem me ajudar, por favor? Talvez não seja a melhor forma de fazer este teste de hipótese, se alguém tiver alguma outra sugestão, por favor, fique a vontade.
O arquivo exemplo segue em anexo, com apenas três linhas, mas são muito mais.
Obrigado pela ajuda.
Editado pela Moderação. Motivo: Utilize o botão Código (< >) sempre que for inserir código VBA ou Fórmulas.
O uso de Select deixa o código mais lento. Evite sempre que for possível.
Sub AtingirMeta()
Dim MargemDesejavel As Double
Dim linha As Long
'Range("AH3").Select
linha = 3
While Range("BA" & linha).Value <> ""
' AtingirMeta Macro
'
'
MargemDesejavel = Range("BA" & linha).Value
Range("AH" & linha).GoalSeek Goal:=MargemDesejavel, ChangingCell:=Range("Z" & linha)
linha = linha + 1
'ActiveCell.Offset(1, 0).Select
Wend
End Sub
Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.
@anderson Desculpe, não tenho o costume de usar fóruns, primeira vez.
Obrigado pela ajuda! Funcionou perfeitamente.
Moderadores,
Sugestão para o título deste tópico:
Atingir meta
Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.