Jump to content
Fórum Script Brasil
  • 0

Subtração de Estoque


Question

Na aba "Registro de Entrada" insere-se os dados, e após executar a macro "RegistrarEntrada",
os dados são copiados pras abas "Estoque", "Entradas e Saídas" e "Inventário".

A aba "Estoque" mostra quantidades atuais dos produtos, separados por tamanhos (P, M, G, 34, 36, 38, 40 e U).
A aba "Entradas e Saídas" exibe todas os registros de entrada e todos os registros de saída existentes.
A aba "Inventário" exibe todos os produtos que deram entrada.

O problema que tenho encontrado é unicamente na hora de registrar uma saída, via macro "Registrar Saída",
pois ao ser executada, tal macro deve ir ao "Estoque" e descontar as quantidades que estão sendo vendidas das unidades
que se encontram em estoque. Ao momento em que as quantidades chegarem em 0 ou em VAZIO em todos os tamanhos,
a linha será excluída.

- Pontos importantes: 
1° na aba "Registro de Entrada", as células A7, B7 e O7 saõ travadas - de resto preenche-se manualmente;
2° na aba "Registro de Saída", as células B7, D7 e O7 são travadas - de resto preenche-se manualmente.
 

Código de Registro de Saída atual:
 

Sub RegistrarSaída()

    Application.ScreenUpdating = False
    
        ' Copiar Informações Inseridas
            Range("A7").Select
            Selection.Copy
            Sheets("Entradas e Saídas").Select

        ' Garantir que a célula selecionada estará abaixo da última preenchida
            Range("A1048576").Select
            Selection.End(xlUp).Select
            ActiveCell.Offset(1, 0).Select
            ActiveSheet.Paste
            
        ' Garantir que as células com fórmula sejam copiadas e coladas de maneira correta
            Sheets("Registro de Saída").Select
            Range("B7:D7").Select
            Selection.Copy
            Sheets("Entradas e Saídas").Select
            Range("B1048576").Select
            Selection.End(xlUp).Select
            ActiveCell.Offset(1, 0).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False

            Sheets("Registro de Saída").Select
            Range("E7:N7").Select
            Selection.Copy
            Sheets("Entradas e Saídas").Select
            Range("E1048576").Select
            Selection.End(xlUp).Select
            ActiveCell.Offset(1, 0).Select
            ActiveSheet.Paste

            Sheets("Registro de Saída").Select
            Range("O7").Select
            Selection.Copy
            Sheets("Entradas e Saídas").Select
            Range("O1048576").Select
            Selection.End(xlUp).Select
            ActiveCell.Offset(1, 0).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False

            Sheets("Registro de Saída").Select
            Range("P7").Select
            Selection.Copy
            Sheets("Entradas e Saídas").Select
            Range("P1048576").Select
            Selection.End(xlUp).Select
            ActiveCell.Offset(1, 0).Select
            ActiveSheet.Paste
            
        ' Limpar informações registradas no cadastro
            Sheets("Registro de Saída").Select
            Range("A7").Select
            Range("A7").Activate
            Selection.ClearContents
            Range("C7").Select
            Range("C7").Activate
            Selection.ClearContents
            Range("E7:N7").Select
            Range("E7").Activate
            Selection.ClearContents
            Range("P7").Select
            Range("P7").Activate
            Selection.ClearContents
            
        ' Limpar validação de dados
    Sheets("Entradas e Saídas").Select
        Range("P5").Select
        Range(Selection, Selection.End(xlDown)).Select
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
            :=xlBetween
            .IgnoreBlank = True
            .InCellDropdown = True
            .ShowInput = True
            .ShowError = True
            Range("A5").Select
        End With
        Sheets("Registro de Saída").Select
        
        ' Mostrar mensagem que informa que processo foi concluido com sucesso
            MsgBox "Registro concluído!", vbOKOnly, "Processo de Registro"
            Sheets("Registro de Saída").Select
           
           
    Application.ScreenUpdating = True

End Sub

1.png

2.png

Edited by Pedro Peixoto
Acrescentar informações
Link to post
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148900
    • Total Posts
      644981
×
×
  • Create New...