Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

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 » Qui Fev 13, 2020 12:51 pm

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 6 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: 1313
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 » Qui Fev 13, 2020 9:37 pm

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


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

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 » Sex Fev 14, 2020 8:16 am

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 90 vezes
exemplo 2.png
exemplo 2.png (236.26 KiB) Exibido 90 vezes
exemplo 1.png
exemplo 1.png (236.37 KiB) Exibido 90 vezes



Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1313
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 » Sex Fev 14, 2020 10:50 am

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


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

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