Notifications
Clear all

Atingir Meta em várias linhas com percentual diferente

4 Posts
3 Usuários
0 Reactions
2,601 Visualizações
(@dayana)
Posts: 1
New Member
Topic starter
 

 

Pessoal, estou o dia inteiro quebrando a cabeça e acho que vcs podem me ajudar:)

Tenho em um planilha a coluna Y que mostra os preços da Internet e na coluna x a minha margem bruta e na coluna P a minha margem desejável, para poder chegar na margem desejável é preciso mudar os valores da coluna N que seria o meu preço de compra, que é exatamente o que preciso saber, ou seja por quanto preciso comprar para poder chegar  na margem desejável da coluna P.

Fiz a macro abaixo, mas está dando erro, alguém pode me ajudar?

Obrigada,

Sub Atingir_Meta()
  Dim MargemDesejavel As Double
  MargemDesejavel = Range("p").Value
  Range("Ah7").Select

  While ActiveCell.Value <> ""
    Range("v5" & ActiveCell.Row).Value = Range("n" & ActiveCell.Row).Value
    If ActiveCell.Value < MargemDesejavel And Range("o" & ActiveCell.Row).Value <> "Total" Then
      ActiveCell.GoalSeek Goal:=MargemDesejavel, ChangingCell:=Range("n" & ActiveCell.Row)
    End If
    ActiveCell.Offset(1, 0).Select
  Wend

  MsgBox "Concluído"
End Sub

 

 

 __________________________________________

Editado pela Moderação. Motivo: Procure utilizar o botão Código (< >) sempre que for inserir código VBA ou Fórmulas. O Planilhando agradece!

 

 
Postado : 06/11/2021 10:52 pm
(@jordsdoexcel)
Posts: 69
Trusted Member
 

Olá, amiga.

Analisando o seu código percebi um erro logo no começo.

Na terceira linha você seleciona o Range AH7 e depois diz pro VBA fazer algo enquanto o valor desse Range for diferente de vazio (isso é o que o While faz), sendo que a celula está vazia na sua planilha, logo o VBA não rodará o restante do código.

Reveja essa parte pra ver se é só esse o problema.

Abs.

 
Postado : 07/11/2021 7:52 am
(@dayana)
Posts: 1
New Member
Topic starter
 

@jordsdoexcel 

oi amigo, bom dia!

td bem?

Obrigada pelo retorno e obrigada pela dica, de fato estava errado, não era AH7, era x7, mas mesmo assim o Vba não rodou, não tenho muito conhecimento em VBA, mas acho que além do AH7 para x7 tb teria algum erro no "MargemDesejavel = Range("p").Value"? Pergunto, pois usava uma célula única e agora o % de meta é individual para cada linha e por isso coloquei "MargemDesejavel = Range("p").Value"

 

Sub Atingir_Meta()
  Dim MargemDesejavel As Double
  MargemDesejavel = Range("p").Value
  Range("x7").Select

  While ActiveCell.Value <> ""
    Range("v5" & ActiveCell.Row).Value = Range("n" & ActiveCell.Row).Value

    If ActiveCell.Value < MargemDesejavel And Range("o" & ActiveCell.Row).Value <> "Total" Then
      ActiveCell.GoalSeek Goal:=MargemDesejavel, ChangingCell:=Range("n" & ActiveCell.Row)

    End If
    ActiveCell.Offset(1, 0).Select

  Wend
  MsgBox "Concluído"
End Sub
 

 __________________________________________

Editado pela Moderação. Motivo: Procure utilizar o botão Código (< >) sempre que for inserir código VBA ou Fórmulas. O Planilhando agradece!

 
Postado : 07/11/2021 12:19 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Boa noite, @dayana!

Seja bem vinda ao Planilhando!

Na realidade vc nem precisaria usar artilharia tão pesada quanto a recursividade do Atingir Meta pra resolver seu problema. Uma simples fórmula já encontraria os valores da coluna N que tornassem sua Margem MB igual à Margem Desejável.

Na célula N7, insira essa fórmula abaixo, depois arraste:

=(H7-Q7)/(1+P7)

 
Postado : 07/11/2021 9:14 pm