Sou novo por aqui e decidi recorrer ao fórum porque já tentei usar todos os meus conhecimentos para resolver um pequeno problema aqui e não consegui...
Estou com uma planilha no excel fazendo uso de VBA para controle de estoque, o problema é o seguinte:
Tenho 1 aba para fazer entrada ou saída de produtos
Tenho outra aba para ver o controle desse estoque
A idéia é, quando a operação for uma entrada, ele pegar a quandtidade do produto que está entrando e acrescentar ao campo entradas na aba de controle de estoque, e caso seja uma saída, fazer o mesmo para o campo saída... Seguem alguns prints das 2 abas:
O grande problema eu creio que está no uso da propriedade Offset, responsável por fazer saltos entre linhas e colunas. Uso o Ofsset pois ao fazer uma entrada ou saída de produto, preciso localizá-lo na tabela presente na aba relatórios para poder atualizar o valor de entrada/saída na mesma, faço uma busca na tabela recorrendo a uma função, que me devolve o endereço da célula encontrada, no caso o produto que vai ser a entrada/saída, após isso uso o offset para saltar uma ou duas colunas a partir do endereço retornado pela busca, caso seja uma entrada salta uma coluna caso contrario salta duas, e atualiza o campo somando a quantidade do produto que entra/sai.... segue o código que estou utilizando tanto para busca quanto para afetar os campos da tabela contida na aba Relatórios:
Código Principal:
Public Sub lsIncluirLancamento()
Dim lUltimaLinhaAtiva As Long
Dim endereco As String
Dim valor As String
Dim total As String
lUltimaLinhaAtiva = Worksheets("Registro de Inventário").Cells(Worksheets("Registro de Inventário").Rows.Count, 1).End(xlUp).Row + 1
'Produto
Worksheets("Registro de Inventário").Cells(lUltimaLinhaAtiva, 1).Value = Worksheets("Entrada e Saída").Range("C4").Value
'Tipo movimento
If (Worksheets("Entrada e Saída").Range("C10").Value = "Entrada") Then
Worksheets("Registro de Inventário").Cells(lUltimaLinhaAtiva, 2).Value = "E"
endereco = PROCURAENDERECO(Sheets("Relatórios").Range("A1:L999"), Sheets("Entrada e Saída").Range("C5").Value) '
valor = Sheets("Relatórios").Range(endereco).Offset(0, 1).Value
total = valor + Sheets("Entrada e Saída").Range("C12").Value
Sheets("Entrada e Saída").Range("B20").Value = total
Sheets("Relatórios").Range(endereco).Offset(0, 1).Value = Sheets("Entrada e Saída").Range("B20").Value
Else
Worksheets("Registro de Inventário").Cells(lUltimaLinhaAtiva, 2).Value = "S"
Sheets("Entrada e Saída").Range("B20").Value = PROCURAENDERECO(Sheets("Relatórios").Range("A1:L999"), Sheets("Entrada e Saída").Range("C5").Value) '
End If
Função de Busca:
Function PROCURAENDERECO(ByVal Area As Range, ByVal Valor_Procurado As String)
If Not Area.Find(Valor_Procurado) Is Nothing Then
PROCURAENDERECO = Area.Find(Valor_Procurado).Address(0, 0)
Else
PROCURAENDERECO = CVErr(xlErrNA)
End If
End Function
Quem puder e conseguir dar uma ajuda seria de extrema ajuda... Valeu!
Pergunta
marcosdonadel
Bom Dia Pessoal!
Sou novo por aqui e decidi recorrer ao fórum porque já tentei usar todos os meus conhecimentos para resolver um pequeno problema aqui e não consegui...
Estou com uma planilha no excel fazendo uso de VBA para controle de estoque, o problema é o seguinte:
Tenho 1 aba para fazer entrada ou saída de produtos
Tenho outra aba para ver o controle desse estoque
A idéia é, quando a operação for uma entrada, ele pegar a quandtidade do produto que está entrando e acrescentar ao campo entradas na aba de controle de estoque, e caso seja uma saída, fazer o mesmo para o campo saída... Seguem alguns prints das 2 abas:
O grande problema eu creio que está no uso da propriedade Offset, responsável por fazer saltos entre linhas e colunas. Uso o Ofsset pois ao fazer uma entrada ou saída de produto, preciso localizá-lo na tabela presente na aba relatórios para poder atualizar o valor de entrada/saída na mesma, faço uma busca na tabela recorrendo a uma função, que me devolve o endereço da célula encontrada, no caso o produto que vai ser a entrada/saída, após isso uso o offset para saltar uma ou duas colunas a partir do endereço retornado pela busca, caso seja uma entrada salta uma coluna caso contrario salta duas, e atualiza o campo somando a quantidade do produto que entra/sai.... segue o código que estou utilizando tanto para busca quanto para afetar os campos da tabela contida na aba Relatórios:
Código Principal:
Função de Busca:
Quem puder e conseguir dar uma ajuda seria de extrema ajuda... Valeu!
Link para o comentário
Compartilhar em outros sites
0 respostass 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.