Notifications
Clear all

Gerar uma nova planilha com soma de itens de outra

9 Posts
2 Usuários
0 Reactions
1,647 Visualizações
(@marcelluss)
Posts: 4
New Member
Topic starter
 

Amigos, uma orientação por favor:
1 - Tenho uma planilha (CSV) de mais ou menos 1000 linhas, composta por vários itens ordenados por nome e a sua respectiva quantidade vendida. Cada linha corresponde a venda de um item. Todo mês, preciso encontrar a "divisão de itens", adicionar duas linhas em branco e em uma delas colocar a soma total do referido item. São uns 60 itens mais ou menos. Após isso, preciso colocar cada um item e seu respectivo total em uma nova planilha. É possível automatizar isso? Vou deixar um exemplo abaixo

PLANILHA QUE SEPARO OS ITENS
A B
01 PRODUTO 1 2
02 PRODUTO 1 4
03 PRODUTO 1 1
04 TOTAL 7
05
06 PRODUTO 2 1
07 PRODUTO 2 8
08 TOTAL 9
09

PLANILHA NOVA QUE CRIO
A B
01 PRODUTO 1 7
02 PRODUTO 2 9
03

Forte abraço, e fiquem com Deus.

 
Postado : 17/08/2017 6:20 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Tente algo assim

Sub aleVBA_25691()
    Dim ws As Worksheet, sh As Worksheet

    Set ws = Worksheets("Plan1")
    Set sh = Worksheets("Plan2")
    
    With ActiveSheet
        .AutoFilterMode = False
        [C1].Value = "Qtd"
        Range("C2").Formula = "=SUMIF($A$2:$A$1048576,A2,$B$2:$B$1048576)"
        Range("C2").AutoFill Destination:=Range("C2:C" & Cells(Rows.Count, 1).End(xlUp).Row)
        With Range("C1", Range("C" & Rows.Count).End(xlUp))
            .AutoFilter 1, "<>0"
            On Error Resume Next
            ws.Range("A2:C" & Cells(Rows.Count, 3).End(xlUp).Row).Copy sh.[a2]
        End With
        .AutoFilterMode = False
        ws.Range("C:C").Delete
    End With
    sh.Range("B:B").Delete
End Sub

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/08/2017 8:08 am
(@marcelluss)
Posts: 4
New Member
Topic starter
 

alexandrevba

Amigo, muito obrigado pelo retorno e pela boa vontade. Infelizmente deu erro de referencia. Anexei uma planilha com dois itens apenas para exemplificar. Na plan1 é o original e a plan 2 é o que tenho que gerar com o somatório. Tinha falado em 1000 linhas, mas na verdade é quase 10.000 :((( Vc acha que dá pra fazer?

 
Postado : 17/08/2017 9:44 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

tente assim

Sub aleVBA_25691()
    Dim ws As Worksheet, sh As Worksheet

    Set ws = Worksheets("Plan1")
    Set sh = Worksheets("Plan2")
    
    ws.Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).Copy Destination:=sh.Range("A1")
    sh.Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlYes
    sh.Range("B1").Formula = "=SUMIF(Plan1!$A:$A,A1,Plan1!$B:$B)"
    sh.Activate
    sh.Range("B1").AutoFill Destination:=Range("B1:B" & Cells(Rows.Count, 1).End(xlUp).Row)
End Sub

Cuidado que tem produto que tem a mesma descrição mas com um espaço no final, para o excel isso pode ser outro item, ao invés de um.

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/08/2017 12:02 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Assim fica um pouco melhor...

Sub aleVBA_25691V1()
    Dim ws As Worksheet, sh As Worksheet

    Set ws = Worksheets("Plan1")
    Set sh = Worksheets("Plan2")
    
    Application.ScreenUpdating = 0
        sh.Cells.ClearContents
        ws.Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).Copy Destination:=sh.Range("A1")
        
        With sh
            .Activate
            .Cells.RemoveDuplicates Columns:=Array(1), Header:=xlNo 'No seu arquivo, eu reparei que vc não usa o cabeçalho
            .Range("B1").Formula = "=SUMIF(Plan1!$A:$A,A1,Plan1!$B:$B)"
            .Range("B1").AutoFill Destination:=Range("B1:B" & Cells(Rows.Count, 1).End(xlUp).Row)
            .Cells.Copy
            .Cells.PasteSpecial xlPasteValues
            .Cells(1).Select
        End With
        Application.CutCopyMode = False
    Application.ScreenUpdating = 1
End Sub

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/08/2017 12:24 pm
(@marcelluss)
Posts: 4
New Member
Topic starter
 

alexandrevba

CACETADAAA meu amigo!!! Isso é INCRÍVELLLLL!!!! Demorava dois dias pra fazer esse serviço!!!! Muito obrigado mesmo!!!! Que Deus abençõe você e sua família!!!!!

 
Postado : 17/08/2017 12:32 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Eu fico feliz em ajuda.

Se você for farmácia compre na minha distribuidora hem, eu trab na Panpharma..rsrsrs

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/08/2017 12:37 pm
(@marcelluss)
Posts: 4
New Member
Topic starter
 

alexandrevba

Vou falar com meu chefe! Sou assistente administrativo aqui na farmácia municipal da cidade!!! :)

 
Postado : 17/08/2017 1:33 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Marcelluss

Como você é novato, para facilitar a tua participação no fórum, sugiro tomar conhecimento do conteúdo dos links 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

[]s
Patropi - Moderador

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/08/2017 4:29 pm