Macro para Gerar To...
 
Notifications
Clear all

Macro para Gerar Top10 Maiores itens por setor

7 Posts
2 Usuários
0 Reactions
2,307 Visualizações
(@ladhe)
Posts: 5
Active Member
Topic starter
 

Boa tarde!

Estou criando esse macro para gerar um relatório aparte de uma banco de dados.. porem estou precisando gerar so o top10 maiores itens, alguem pode me ajudar por gentileza?
Não sei qual critério usar :cry:

Agradeço desde já!

Sub top10()
LIN = 2
LINHA = 2

?????????

Do Until Sheets("BASE").Cells(LIN, 1) = 1
If Sheets("BASE").Cells(LIN, 2) = "SC" Then
Sheets("REL").Cells(LINHA, 1) = Sheets("BASE").Cells(LIN, 1)
Sheets("REL").Cells(LINHA, 2) = Sheets("BASE").Cells(LIN, 2)
Sheets("REL").Cells(LINHA, 3) = Sheets("BASE").Cells(LIN, 3)
End If
LIN = LIN + 1
Loop

End Sub

 
Postado : 06/01/2017 3:21 pm
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

Vc pode fazer isso de maneira ultra-fácil com tabela dinâmica.

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 07/01/2017 10:28 am
(@ladhe)
Posts: 5
Active Member
Topic starter
 

Problema é; no meu trabalho, trabalhamos com excel 2007, tabela dinamica so aceita 1000 itens , e tenho no cadastro, mais de 200000 itens cadastrado!

 
Postado : 08/01/2017 2:12 pm
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

Problema é; no meu trabalho, trabalhamos com excel 2007, tabela dinamica so aceita 1000 itens , e tenho no cadastro, mais de 200000 itens cadastrado!

Procurei esse limite da TD no Microsoft Excel e não encontrei...

https://support.office.com/pt-br/article/Especifica%C3%A7%C3%B5es-e-limites-do-Microsoft-Excel-1672b34d-7043-467e-8e27-269d656771c3#ID0EBACAAA=Excel_2007

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 08/01/2017 2:25 pm
(@ladhe)
Posts: 5
Active Member
Topic starter
 

Desculpa é excel 2003

Causa
No Excel 2003, a lista suspensa de AutoFiltro mostrará os primeiros 1.000 itens exclusivos. Se você tiver mais de 1.000 itens exclusivos na lista, aparecem apenas os primeiros 1.000 itens.

No Excel 2007 e versões posteriores, a lista suspensa de AutoFiltro mostrará os primeiros 10.000 itens exclusivos. Se você tiver mais de 10.000 itens exclusivos na lista, somente os primeiros 10.000 itens são exibidos.

OBSERVAÇÃO: Lista de tabela dinâmica do Excel 2007 mostrará os primeiro 65.534 itens exclusivos. No Excel 2010 e versões posteriores a lista Tabela Dinâmica mostrará os primeiros 10.000 itens exclusivos.

https://support.microsoft.com/pt-br/kb/295971

 
Postado : 08/01/2017 2:47 pm
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

Mas a grande pergunta é a seguinte, vc quer ver toda a sua lista de dados na tabela dinâmica ou apenas os 10 primeiros?

Exibir qq quantidade não significa q a tabela dinâmica não leve em consideração um grande número de itens, 20 mil no seu caso.

Tabela dinâmica foi criada p/ filtrar dados e não p/ reexibir dados q estão numa matriz qq.

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 08/01/2017 3:30 pm
(@ladhe)
Posts: 5
Active Member
Topic starter
 

Entao, quero pegar os 10 maiores estoques de cada setor, como cada setor tem mais de 50.000 itens .. a tabela dinamica nao reconhece.. da erros de itens excluisivos.

por isso quero criar uma macro para fazer esse procedimento!

tenho esse codigo, porem ele puxa todos os itens
Sub top10_P()
LIN = 2
linha = 2

Busca = Sheets("REL").Range("H1").Value

Range("A2:D8").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("A2").Select

Do Until Sheets("BASE").Cells(LIN, 1) = ""
If Sheets("BASE").Cells(LIN, 3) = Busca Then
Sheets("REL").Cells(linha, 1) = Sheets("BASE").Cells(LIN, 1)
Sheets("REL").Cells(linha, 2) = Sheets("BASE").Cells(LIN, 2)
Sheets("REL").Cells(linha, 3) = Sheets("BASE").Cells(LIN, 3)
linha = linha + 1
End If
LIN = LIN + 1
Loop

End Sub

 
Postado : 08/01/2017 3:35 pm