Jump to content
Fórum Script Brasil
  • 0

Problemas no Uso do Offset


marcosdonadel
 Share

Question

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:

dabsz.png

2j3g01s.png

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!

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...