Ir ao conteúdo

Posts recomendados

Postado

Boa tarde galera!

 

Esse é um breve resumo da planilha que estou trabalhando, se estiver cansado para ler essa introdução, pule direto para o parágrafo que está em azul.

 

Venho compartilhar um projeto que estou trabalhando em cima e também pedir ajuda em uma parte do código.

Trabalho em uma loja de vendas de peças de moto e estamos tentando acertar o estoque da mesma, visto que as vezes acontece do produto constar no sistema mas não ter na loja e o produto acabar antes do fornecedor entregar a reposição. A grande dificuldade em corrigir o estoque é que temos em torno de 14.000 produtos cadastrados no sistema, por isso pensei em uma forma de automatizar esse processo usando vba do excel.

 

A ideia até que é simples, fazer a conferência e contagem do estoque e realizar o calculo do estoque mínimo para cada produto, isso com base nas vendas que foram realizadas desse produto em um determinado período (filtros de data). Nosso amigo aqui do fórum Basole me ajudou muito com uma parte desse projeto, realizando o calculo do estoque mínimo de cada produto conferido. Muito obrigado Basole!

 

Na planilha do excel foram criados 4 abas: aba CONFERENCIA é onde será criada a lista com os produtos conferidos, através do botão Inserir Produto; aba VENDAS registra todas as vendas realizadas na loja; aba ESTOQUE contém todos os produtos cadastrados na loja; aba FABRICANTES que é onde será registrada todas as marcas (fornecedores) e seus respectivos prazos para reposição do estoque.

 

O calculo será feito da seguinte forma: Foram vendidos por exemplo, 50 unidades do produto X nos últimos 3 meses (90 dias) e o prazo que o fornecedor leva para repor esse produto é de 15 dias. O estoque mínimo será sempre para 30 dias + os dias que o fornecedor leva pra entregar. Então quando esse produto for conferido, o excel vai fazer a seguinte fórmula: 50 / 90 = 0,55 (média de venda diária nos últimos 90 dias), depois 0,55 * (30 + 15) = 25.

Dessa forma o estoque mínimo do produto X será 25, é a uma média que irá cobrir as vendas em até 45 dias.

 

A planilha (em anexo) está funcionando em partes, isso porque se na aba CONFERENCIA o código do produto sendo pesquisado não for encontrado na aba VENDAS, ele retorna o seguinte: "Erro de tempo de execução '13': Tipos incompatíveis". Esses são alguns produtos que não tem vendas registradas: 14045, 4403, 464, 457, 17472, 11537 entre outros.

Não consegui achar nenhuma forma de definir o valor da venda diária desses produtos para 0 caso ele não seja encontrado nas vendas.

 

Fico muito agradecido a quem souber o que posso fazer para consertar esse erro, e se alguém quiser compartilhar o que achou fiquem a vontade também, criticas são sempre bem vindas!

 

ConferenciaEstoque.zip

Postado

"Erro de tempo de execução '13': Tipos incompatíveis".

 

Após clicar no botão "Depurar" da mensagem de erro qual a linha de qual código aparece destacada em amarelo ?

 

Postado

Bom dia Osvaldo!

 

Está apontando para a linha EstMin = Format(vlrMD * (30 + PzEntrForn), "0"), que é onde faz oi calculo para o estoque mínimo.

Esta linha está dentro do Módulo 1.

Postado

João.

 

EstMin = Format(vlrMD * (30 + PzEntrForn), "0")

 

Esse comando em que ocorre o erro está tentando multiplicar 2 variáveis: Format(vlrMD e PzEntrForn.

 

Uma possibilidade para o Excel não conseguir efetuar a multiplicação é que ao menos uma dessas variáveis esteja com valor vazio no momento de executar o comando, pois você declarou ambas como 'String'.

 

Para confirmar, após clicar no botão 'Depurar' paire com o cursor do mouse sobre as duas variáveis e confirme o valor de cada uma. Se indicar "" (duas aspas duplas) o Excel não consegue efetuar o cálculo, notadamente se a variável vlrMD estiver com valor vazio pois a outra está adicionada do valor 30 e talvez  o Excel consiga fazer esse primeiro cálculo mesmo se o valor da primeira estiver vazio.

 

Para descobrir a razão de a variável estar com valor vazio, se for esse o caso, aí você vai precisar fazer um passo-a-passo no processo.

 

Uma forma de eliminar o erro é você acrescentar o Exit Function (em azul abaixo) que encerrará a execução caso o código do produto não seja encontrado na planilha 'Vendas', ou no lugar do Exit Function você acrescentar instruções do que você deseja que o código faça caso o código do produto não for encontrado.

 

Function Find_MDVendaDia

....

If Not C Is Nothing Then

....

Else: Exit Function

End If

Postado

Muito obrigado pela ajuda Osvaldo, mas não estava prestando atenção em um detalhe muito simples. Depois que você me falou da variável com o valor vazio, resolvi dar uma olhada em vlrMD e realmente ela estava com as aspas vazias " ". Resolvi o erro apenas acrescentando a linha  If vlrMD = "" Then vlrMD = 0 antes da linha que dava o erro. Agora quando nenhum produto é encontrado, a variável recebe o valor 0 e assim ele não retorna mais o erro.

 

Novamente muito obrigado pela ajuda osvaldomp, agora ficou perfeito! Post Resolvido!

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...