Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas no Uso do Offset


marcosdonadel

Pergunta

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 para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...