Notifications
Clear all

Controle PEPS (Executar macro vlr Cél > 0)

2 Posts
1 Usuários
0 Reactions
1,655 Visualizações
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
Topic starter
 

Boa tarde.

Eu pesquisei, mas não localizei nenhum tópico aqui e no google também não consegui.

Estou elaborando uma planilha que controla estoque pelo método PEPS (Primeiro que entra, primeiro que sai).

É uma ferramenta contábil para controle de estoques.

Exemplo.

dia 01/08 comprei 10 peças a custo de 1 real cada
dia 02/08 comprei 10 peças a custo de 2 reais cada

dia 03/08 vendi 15 unidades.
meu custo é de 20 reais, pois primeiro dei baixa na compra do dia 01 e depois baixa de 5 unidades da compra do dia 02...

Na planilha tem vários registros que simulam compras.
Na célula R4, S4, T4, U4 estão dados que vou inserir com userform para realizar uma venda ou baixa do estoque. (Digitei para simular as baixas)

Na célula T4 ao clicar em reiniciar (fiz a macro para utilizar como exemplo) é preenchido o valor 1050 este é o total de itens que tenho que baixar do estoque (total que estou vendendo).

A Macro atualizar está funcional, porém não está pratico.

Para dar baixa nas 1.050 unidades, tenho que baixar:

490 unidades da NF 90893
520 unidades da NF 90924 e
40 unidades da NF 97957

Atualmente tenho que clicar 3 vezes em atualizar.

Existe algum código que possibilita repetir a macro enquanto o valor de T4 for maior que zero ?

Obrigado!

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 05/08/2015 2:24 pm
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
Topic starter
 

Boa tarde.

Eu consegui resolver, mas não da maneira que postei (Executar macro se valor da célula for > que zero).

Primeiro achei esse código aqui no Planilhando mesmo, que executa a Macro03 a cada alteração realizada na célula T4.

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$T$4" Then
      Call Macro03
    Exit Sub
  End If
End Sub

Mas ai surgiu outro problema, o excel não parava nunca, pois sempre a Macro03 altera o valor da célula T4, e gravei na macro a ferramenta padrão de Localizar do Excel, e quando o valor da T4 era zero, dava erro na macro.

Então me lembrei de uma macro para localizar que se não encontrasse o valor procurado finaliza a macro sem nenhuma mensagem de erro.

Me desculpem se não podia postar, mas não achei nada nas regras referente a isto (De postar links), usei a macro do link http://www.macoratti.net/12/09/vba_fxls1.htm .

Sub Botão4_Clique()
 Dim EncontraString As String
    Dim Intervalo As Range
    EncontraString = InputBox("Informe o valor a procurar")
    If Trim(EncontraString) <> "" Then
        With Sheets("Plan1").Range("B:C")
            Set Intervalo = .Find(What:=EncontraString, _
                                  After:=.Cells(1), _
                                  LookIn:=xlValues, _
                                  LookAt:=xlWhole, _
                                 SearchOrder:=xlByRows, _
                                 SearchDirection:=xlPrevious, _
                                 MatchCase:=False)
            If Not Intervalo Is Nothing Then
                Application.Goto Intervalo, True
            Else
                MsgBox "Não Localizado"
            End If
        End With
    End If
End Sub

Fiz algumas alterações e deu certo.

Na macro eu coloco na coluna P uma fórmula que se o valor da T4 for >0 ele traz em uma célula XXX, então uso a macro de procurar se achar executa a macro Macro03 se não finaliza a Macro.

Conforme orientação do Moderador Patropi deixo o exemplo em anexo para futuras consultas, já vi pessoas pesquisando sobre planilhas para fazer calculo de custo pelo método PEPS, inclusive eu já procurei.

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 06/08/2015 10:44 am