Atualizando uma contagem de estoque entre duas planilhas do Excel

0

Ok pessoal, eu tenho certeza que isso é muito simples, mas me deixa perplexa. Duas folhas dentro de uma pasta de trabalho Eu tenho uma lista de inventário na primeira folha com 272 linhas. Esta lista tem 7 colunas e a primeira coluna lista números de peças (feitas em uma tabela), a última coluna H tem as contagens de estoque.

A segunda, vamos chamá-lo de Log, a folha é composta de 7 colunas onde a primeira coluna permite uma lista suspensa de qualquer item e a segunda coluna possui uma entrada de campo da quantidade tirada. A quarta coluna é o campo de data.

Qual fórmula posso inserir para fazer a folha de registro atualizar a lista principal sempre que um item é retirado, para que sempre tenhamos uma contagem precisa? Seria bom se houvesse uma fórmula para que, quando alguém terminasse sua entrada de linha, a linha salvasse ou salvasse automaticamente após ~ 2 minutos, ou eles poderiam pressionar um botão (já fiz um botão com a guia Desenvolvedor ) para atualizar as alterações? Apenas procurando principalmente uma boa maneira de construir uma função de contagem adequada.

Obrigado antecipadamente.

    
por Dubidubiduu 28.07.2017 / 14:21

1 resposta

1

Esta resposta está apenas saindo da sua descrição do que você está fazendo, sem ver sua pasta de trabalho. É um ponto de partida para você. Faça cópias de segurança do seu arquivo antes de tentar isso.

Na sua segunda planilha, crie um botão à direita da última coluna na guia Desenvolvedor. Se a guia do desenvolvedor não estiver disponível, clique aqui para aprender como torná-lo visível.

CliquecomobotãodireitonobotãoeescolhaViewCode.Umajanelaseráabertaevocêveráalgoassimnopaineldireito.

Entreasduaslinhas,coleocódigoaseguir.

DimintCountAsIntegerDimlRowAsLongDimLastRowAsLongDimstrPartAsString'FindlastrowinthelogLastRow=Worksheets("Sheet2").Cells(Worksheets("Sheet2").Rows.Count, "A").End(xlUp).Row

'Get the part number and amount taken from the last row
strPart = Worksheets("Sheet2").Range("A" & LastRow).Value
intCount = Worksheets("Sheet2").Range("B" & LastRow).Value

'Look for a match in the first sheet
lRow = Application.WorksheetFunction.Match(strPart, Worksheets("Sheet1").Range("A:A"), 0)

'Subtract the amount from the count
intCount = Worksheets("Sheet1").Range("H" & lRow).Value - intCount
Worksheets("Sheet1").Range("H" & lRow).Value = intCount

Depois de colá-lo, você precisará alterar os nomes das planilhas se o seu não for o padrão Sheet1 e Sheet2 . Sheet1 é onde está sua lista de inventário. Sheet2 é o log que tira o inventário.

Feche a janela do VBA e clique com o botão direito do mouse no botão e escolha Properties . Altere a legenda para "Calcular" ou algo mais descritivo e feche. NÃO altere o (name) na parte superior ou seu botão não funcionará.

Clique em Design Mode no menu para ativar o botão.

Quando você se refere à primeira coluna e à segunda coluna, você quer dizer coluna A e B , isso encontrará o número da peça na última linha do log e fará a correspondência com o número da peça na outra e subtraia a quantia retirada do estoque.

Calcula apenas a última linha. Não fará nenhuma linha anterior. Portanto, se já houver linhas ou se você esquecer de clicar no botão depois de inserir os dados, isso será perdido. Por outro lado, se você apertar o botão mais de uma vez, ele subtrairá quantas vezes você apertar o botão.

Isso deve levá-lo na direção certa. Como alternativa, você pode fazer isso com um botão na faixa de opções em vez de na folha.

    
por 28.07.2017 / 19:59