Ir para conteúdo
Fórum Script Brasil

marcosdonadel

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que marcosdonadel postou

  1. 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: 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!
×
×
  • Criar Novo...