Notifications
Clear all

Soma condicional vba

5 Posts
3 Usuários
0 Reactions
1,770 Visualizações
(@riwerson)
Posts: 0
New Member
Topic starter
 

Bom dia!

Comecei a programaar no VBA excel a pouco tempo e estou quebrando a cabeça com a seguinte questão:
Tenho uma planilha com número do pedido, clientes finais, descrição do item e quantidade do item para cada cliente.
Para tratar da compra com os fornecedores, não importa para quem vai o item, somente importa o nº do pedido, a quantidade total por item e a descrição.

Preciso que, no evento exit da descrição, o vba faça a soma da quantidade de produtos repetidos dentro do mesmo pedido. Exemplo:

CLIENTE FINAL
PEDIDO CLIENTE ITEM QTDE
1 João Banana 10
1 Felipe Banana 10
1 Mariana Banana 10
1 Rogério Melão 10
1 Camila Melão 10
1 Rogério Pêssego 10
1 Camila Pêssego 10
1 Felipe Pêssego 10
2 João Uva 10
2 Felipe Uva 10
2 Camila Melão 10
2 Mariana Melão 10
2 Felipe Banana 10
2 Camila Banana 10

LISTA DE COMPRAS
PEDIDO ITEM QTDE
1 Banana 30
1 Melão 20
1 Pêssego 30
2 Uva 20
2 Melão 20
2 Banana 20

É possível fazer isso?
Alguém poderia me ajudar?

Minha última tentativa foi essa:

Private Sub gerdescrição_Exit(ByVal Cancel As MSForms.ReturnBoolean)

'Verificar gerreq e descrição do item na Base para somar
Ulinha = Worksheets("Base").UsedRange.Rows.Count
For linha = 2 To Ulinha

Worksheets("Base").Select

'Variáveis para a condicional
soma = 2
Do
iqtde = Cells(soma, 8)
soma = soma + 1
Exit Do
Loop While CStr(Cells(linha, 4)) = gerreq

req = CStr(Cells(linha, 4))
desc = Cells(linha, 7)
qtde = Cells(linha, 8)

'Somar apenas se o descritivo for repetido e pertencer a mesma requisição
If gerreq.Value = req And gerdescrição.Value = desc Then
gerqtde = qtde + iqtde
End If
Next

End Sub
 
Postado : 18/10/2018 7:16 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Disponibilize um pequeno modelo de sua planilha, que seja representativo da estrutura real; assim terá uma resposta mais rapida e objetiva

 
Postado : 18/10/2018 7:52 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

riwerson ,

Bom dia!

Seja muito bem vindo ao fórum.

Para aproveitar ao máximo o fórum e sempre manter o mesmo de forma organizada, sugiro ler os tópico da regras abaixo:
viewtopic.php?f=7&t=16757
viewtopic.php?f=7&t=203
viewtopic.php?f=7&t=7903
viewtopic.php?f=7&t=3841
viewtopic.php?f=7&t=12600
viewtopic.php?f=7&t=3371

Algumas solicitações especiais que pedimos, por gentileza, ficar atento:
1 - Não inserir no titulo de suas postagens expressões como Help, Ajuda, etc. O título deve ser um resumo da sua necessidade para que outras pessoas que tenham a mesma dúvida possam efetuar a pesquisa e achar como foi resolvido.
2 - Não insira em suas mensagens frases todas escritas em letras maiúsculas. Isso, na Internet, é compreendido como gritos e muitos usuários sequer respondem somente por esse fato!
3 - Insira sempre um arquivo exemplo compactado com .ZIP aqui mesmo no fórum. Existe, logo abaixo da caixa de mensagens, uma aba chamada "Adicionar um anexo" para essa finalidade. O arquivo exemplo deve ser pequeno, com apenas 5 linhas no máximo, compactado com .ZIP e ter o mesmo layout (nome do arquivo, nome das abas/guias/folhas, mesma linha/coluna onde os dados se iniciam) do arquivo original. Links de arquivos enviados para sites de compartilhamento de arquivos, muitas vezes são bloqueados pelas empresas, por conterem muitos vírus. Alguns usuários que acessam o fórum a partir de empresas não conseguem baixar tais arquivos.
4 - Não utilize a ferramenta CITAR para inserir o inteiro teor das mensagens que lhe são encaminhadas como resposta. Citações, se estritamente necessárias ao entendimento da mensagem que você quer enviar, devem ser apenas de pequenos trechos das mensagens.
5 - Se for postar códigos VBA aqui no fórum, utilize a ferramenta CODE localizada logo no início da caixa de mensagens (quinto botão da esquerda para a direita). As linhas de código devem ficar entre as palavras "CODE e /CODE".
6 - Agradeça sempre às pessoas que lhe responderam e às mensagens que atenderam a necessidade de sua demanda. Esse agradecimento deve ser clicando na mãozinha que fica localizada ao lado da ferramenta CITAR. Lembre-se: o fórum é gratuito e esse é o único incentivo para as pessoas que prestam ajuda. Você pode agradecer a quantos usuários quiser.
7 - O título ou o texto das mensagens postadas não devem ser escritos todo em letras maiúsculas. Na internet, tudo escrito em letras maiúsculas é interpretado como gritos e muitos usuários sequer olham para esse tipo de mensagem.

 
Postado : 18/10/2018 8:44 am
(@riwerson)
Posts: 0
New Member
Topic starter
 

Não sei se vai funcionar. Mesmo compactando ficou com 70Kb. Aí salvei como binária.
A grosso modo, a planilha é essa.

 
Postado : 18/10/2018 9:06 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

riwerson,

Boa tarde!

Dá certo sim com arquivo binário. Todavia, ao tentar carregar seu formulário ocorre o erro abaixo (Subscrito fora do intervalo). Ele para na linha da tela abaixo. Esse erro é porque o código não encontra nenhuma aba no seu arquivo chamada Relatório_Geral. Aqui, só veio uma aba chamada Base.

 
Postado : 18/10/2018 11:03 am