Notifications
Clear all

Classificar automatico

7 Posts
2 Usuários
0 Reactions
1,516 Visualizações
(@celri_33)
Posts: 0
Estimable Member
Topic starter
 

Ai galera, boa tarde!

Tenho uma planilha alimentada por fórmulas, mas gostaria que ele auto classifica-se do maior para o menor seguindo a ordem de importância.

A 1 classificação seria a coluna D, depois a E e em seguida F, G, H, i e por fim a coluna C

é possível em código VBA?

 
Postado : 02/04/2018 11:15 am
(@klarc28)
Posts: 971
Prominent Member
 
Option Explicit

Sub Macro1()
'
' Macro1 Macro
'

'
    ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("D4:D17"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("E4:E17"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("F4:F17"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("G4:G17"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("H4:H17"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("I4:I17"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("C4:C17"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Plan1").Sort
        .SetRange Range("B3:I17")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Quando não sei fazer algo no VBA, vou ao menu EXIBIÇÃO >> MACROS >> GRAVAR MACRO
Faço o que eu quero aí volto ao menu EXIBIÇÃO >> MACROS >> PARAR GRAVAÇÃO
Aperto Alt + F11 e vejo como a macro fez aquilo. Tento entender e tento adaptar.

 
Postado : 02/04/2018 11:28 am
(@celri_33)
Posts: 0
Estimable Member
Topic starter
 

Ola amigo Klarc28, tudo bem?

Então, com o botão ou tecla de atalho para a ativação de Macro eu também consegui, mas o que eu queria é que a planilha fosse auto classificando, sem uso de botões de ativação, entende?

 
Postado : 02/04/2018 11:33 am
(@klarc28)
Posts: 971
Prominent Member
 

Fiz o código para classificar quando for selecionada uma célula da linha 3.
Deixar ela totalmente automática não dá, pois gera um Loop infinito.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row = 3 Then
Call Macro1
End If
End Sub
 
Postado : 02/04/2018 11:43 am
(@celri_33)
Posts: 0
Estimable Member
Topic starter
 

Entendi, ficou legal, achei que dava pra deixar totalmente automático.

Vou aguardar mais um pouco para ver se alguém sabe, mesmo assim obrigado amigo.

 
Postado : 02/04/2018 11:49 am
(@klarc28)
Posts: 971
Prominent Member
 

Consegui!!!

 
Postado : 02/04/2018 1:57 pm
(@celri_33)
Posts: 0
Estimable Member
Topic starter
 

Muito obrigadoooooo

 
Postado : 04/04/2018 11:01 am