Página 1 de 1
Somar Textbox na célula do excel
Enviado: 01 Set 2019 às 10:48
por rfmfoz
Bom dia.
Estou aprendendo VBA e tenho uma dúvida.
Eu gostaria que quando eu selecionasse o produto na combobox, colocasse como "Entrada" e depois o valor no campo "Quantidade", ele somasse o valor do campo "Quantidade" com o valor da célula da planilha de acordo com o produto.
Segue planilha em anexo.
Re: Somar Textbox na célula do excel
Enviado: 01 Set 2019 às 10:56
por babdallas
Por favor, dê um exemplo de entrada no formulário e o que deseja que aconteça na planilha.
Somar Textbox na célula do excel
Enviado: 01 Set 2019 às 10:59
por rfmfoz
Se vc for em Dados vai ver a entrada:
09/01/2019 ABACAXI EM LATA 3 ENTRADA DESTINO3
Então lá na planilha PRODUTOS, ele teria que achar o abacaxi em lata e acrescentar mais 3 na coluna estoque.
Re: Somar Textbox na célula do excel
Enviado: 01 Set 2019 às 11:07
por babdallas
Pelo que entendi, o estoque poderia ser calculado por:
Estoque = Estoque inicial + SOMASE(QUANTIDADES;PRODUTOS;PRODUTO ESCOLHIDO;TIPOS;"ENTRADA") - SOMASE(QUANTIDADES;PRODUTOS;PRODUTO ESCOLHIDO;TIPOS;"SAÍDA")
Se tiver o estoque inicial em alguma tabela, bastaria fazer a fórmula.
Re: Somar Textbox na célula do excel
Enviado: 01 Set 2019 às 11:16
por babdallas
Veja uma possibilidade.
Somar Textbox na célula do excel
Enviado: 01 Set 2019 às 11:27
por rfmfoz
Mas como faço isso com vba?
Ele teria que reconhecer o produto selecionado na combobox e a partir dai encontrar a linha e somar a quantidade.
Re: Somar Textbox na célula do excel
Enviado: 01 Set 2019 às 11:37
por babdallas
Algo assim:
Código: Selecionar todosDim lngLinha as Long
lngLinha = Application.WorksheetFunction.Match(caixa_produto.value, Planilha1.Range("C:C"),0)
PLanilha1.Range("D" & lngLinha).value2 = PLanilha1.Range("D" & lngLinha).value2 + clng(caixa quantidade.Text)
Somar Textbox na célula do excel
Enviado: 01 Set 2019 às 12:00
por rfmfoz
Pelo pouco que entendo, acredito que seja isso mesmo.
Testei aqui, mas está dando erro.
Você poderia me explicar o código por favor?
Eu deixei ele dessa forma:
Dim lngLinha as Long
lngLinha = Application.WorksheetFunction.Match(caixa_produto.value, Dados.Range("C:C"),0)
Aqui vc declara que o lngLinha vai procurar a linha do caixa produto, correto?
PRODUTOS.Range("D" & lngLinha).value2 = PRODUTOS.Range("D" & lngLinha).value2 + clng(caixa_quantidade)
Aqui vc seleciona a planilha produtos , a linha e a coluna e faz a soma, correto? mas por que é usado .value2?
Re: Somar Textbox na célula do excel
Enviado: 01 Set 2019 às 13:47
por babdallas
Código: Selecionar todoslngLinha = Application.WorksheetFunction.Match(caixa_produto.value, Planilha2.Range("C:C"),0)
Esta linha acima usa a função Corresp (match em inglês) para encontrar a linha na planilha Produtos. NOte que usei PLanilha2, pois é codename referente a planilha Produtos.
Código: Selecionar todosPlanilha2.Range("D" & lngLinha).value2 = Planilha2.Range("D" & lngLinha).value2 + VBA.Clng(caixa quantidade.Text)
Na linha cima, ele acessa a linha correspondente na coluna D da planilha Produtos (codename Planilha2) para somar ao valor atual a quantidade que está na textbox caixa_quantidade. Como caixa quantidade possui um número no formato de texto, uso a função da biblioteca do VBA Clng para converter o texto em número.
Veja o motivo de usar Value2 ao invés de value nestes videos, neste caso. Na verdade a diferença é imperceptível neste caso, mas sempre que posso uso o Value2, exceto quando preciso trazer a formatação original da célula.
https://www.youtube.com/watch?v=uY4mafz7RZg
https://www.youtube.com/watch?v=5FzwjortUSw
Re: Somar Textbox na célula do excel
Enviado: 01 Set 2019 às 13:54
por babdallas
Veja também este vídeo sobre Name e Codename de uma planilha
https://www.youtube.com/watch?v=n490HkWmr68
Somar Textbox na célula do excel
Enviado: 01 Set 2019 às 13:56
por rfmfoz
Muito obrigado pela sua paciência e sua ajuda.
Vou assistir aos vídeos, muito obrigado mesmo.