Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Unificar duplicados e somar suas quantidades no excel VBA

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Darlin
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Qui Fev 13, 2020 12:18 pm

Unificar duplicados e somar suas quantidades no excel VBA

Mensagem por Darlin »

Olá, estou tentando criar uma planilha básica de controle de produtos de um sacolão onde seja possível incluir produtos através de um pequeno menu com um botão macro que direciona esses dados para a próxima planilha onde são armazenados esses dados, e na medida que dados repetidos vão sendo inseridos, os itens duplicados são transformados em um único item e suas quantidades somadas, assim como seus valores, tentei construir essa panilha com uma macro de outro tópico mas não obtive resultado, seria muito grato se alguem pudesse me orientar...
Anexos
Controle de Produtos.rar
(14.91 KiB) Baixado 164 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Unificar duplicados e somar suas quantidades no excel VBA

Mensagem por Reinaldo »

Particularmente não consegui entender a demanda, principalmente no que tange à "..assim como seus valores.." Seu modelo está sem nenhum registro que ajude a compreender melhor
Pode fornecer um exemplo pratico de como o seu descritivo deva ocorrer


Darlin
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Qui Fev 13, 2020 12:18 pm

Re: Unificar duplicados e somar suas quantidades no excel VBA

Mensagem por Darlin »

Olá Reinaldo, obrigado pelo interesse em ajudar e desculpa as informações rasas que eu passei, pois bem, esse pequeno projeto consiste em receber os dados do usuário através de um pequeno menu que seria nome no produdo, quentidade e valor, quando o usuário clica no botão para adicionar essas informações a macro lanca esses dados em outra planilha cuidando para unificar produtos duplicados em uma única célula e somando suas quantidades assim como seus respectivos valores, basicamente é isso, meus conhecimentos em VBA é pouco, por isso peço ajuda.
Anexos
exemplo 3.png
exemplo 3.png (235.09 KiB) Exibido 2230 vezes
exemplo 2.png
exemplo 2.png (236.26 KiB) Exibido 2230 vezes
exemplo 1.png
exemplo 1.png (236.37 KiB) Exibido 2230 vezes


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Unificar duplicados e somar suas quantidades no excel VBA

Mensagem por Reinaldo »

Ainda continuo em duvida a questão de valores.
Mas segue o que, acredito, auxilie

Código: Selecionar todos

Sub btnIncluirProduto_Clique()
'Declaração de variaveis
Dim Localizado
Dim wsM As Worksheet, wsBD As Worksheet
Dim StrProd As String
Dim lngLinha As Long, intQtd As Integer, dblVlr As Double

'Atribui valores as variaveis
Set wsM = Sheets("Cadastro de Produtos")        'planilha  origem dos dados
Set wsBD = Sheets("Controle de Produtos")       'planilha destino dos dados
StrProd = wsM.Range("C2").Value                                 'Obtem nome produto
intQtd = wsM.Range("C4").Value
dblVlr = wsM.Range("C6").Value

'Verifica se há resgistro existente
With wsBD.Range("A:A")
    Set Localizado = .Cells.Find(StrProd, LookIn:=xlValues, LookAt:=xlPart)
End With

'Inicia registro dos dados
If Not Localizado Is Nothing Then
    'Se houver registro atualiza
     lngLinha = Localizado.Cells.Row 'guarda numero da linha onde consta o registro
    
    wsBD.Cells(lngLinha, 2) = wsBD.Cells(lngLinha, 2) + intQtd
    wsBD.Cells(lngLinha, 3) = dblVlr
    wsBD.Cells(lngLinha, 4) = wsBD.Cells(lngLinha, 2) * wsBD.Cells(lngLinha, 3)
Else
    'Se não houver registro acrescenta
     lngLinha = Localizado.Cells.Row 'guarda numero da linha onde consta o registro
    wsBD.Cells(lngLinha, 1) = StrProd
    wsBD.Cells(lngLinha, 2) = wsBD.Cells(lngLinha, 2) + intQtd
    wsBD.Cells(lngLinha, 3) = dblVlr
    wsBD.Cells(lngLinha, 4) = wsBD.Cells(lngLinha, 2) * wsBD.Cells(lngLinha, 3)
End If
End Sub


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder