Atingir Meta em vár...
 
Notifications
Clear all

Atingir Meta em várias linhas com percentual diferente


Dayana
Posts: 1
Registered
Topic starter
(@dayana)
New Member
Entrou: 2 meses atrás

 

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!

 

Responder
Tags do Tópico
3 Respostas
JordsdoExcel
Posts: 71
Registered
(@jordsdoexcel)
Trusted Member
Entrou: 5 meses atrás

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.

Responder
1 Responder
Dayana
Registered
(@dayana)
Entrou: 2 meses atrás

New Member
Posts: 1

@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!

Responder
EdsonBR
Posts: 914
Moderator
(@edsonbr)
Prominent Member
Entrou: 6 anos atrás

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)
Responder