Ir para conteúdo
Fórum Script Brasil
  • 0

Subtração de Estoque


Pedro Peixoto

Pergunta

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

Editado por Pedro Peixoto
Acrescentar informações
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...