classificação de va...
 
Notifications
Clear all

classificação de valores usando variáveis

8 Posts
2 Usuários
0 Reactions
1,542 Visualizações
(@juliowd)
Posts: 0
New Member
Topic starter
 

Olá. Mais uma vez empaquei e preciso da ajuda dos meus colegas feras em excel.
Peço ajuda pois não sei trabalhar com variáveis, e estou frustrado.
Bom...
Eu tenho uma tabela onde inserirei dados através de macro. E eu sempre inserirei na linha 10 (que é a segunda linha, para manter a formatação da primeira). Em razão disso, os novos dados precisam ser classificados depois de eu inserir. E precisam ser classificados em ordem crescente pela coluna B (como primeiro critério) e pela coluna N (como segundo critério).
Porém, fiz a macro automática que ficou assim:

    
    Range("B9").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Worksheets("bermuda fem colcci").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("bermuda fem colcci").Sort.SortFields.Add Key:= _
        Range("B9:B12"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    ActiveWorkbook.Worksheets("bermuda fem colcci").Sort.SortFields.Add Key:= _
        Range("N9:N12"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("bermuda fem colcci").Sort
        .SetRange Range("B9:N12")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Só que a ABA onde irão os dados é VARIÁVEL. E a quantidade de linhas também. Por isso comecei com o seguinte código:

    Range("B9").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select

A minha ideia era depois disso simplesmente classificar essa seleção pela coluna B e pela N.
E não funcionou.

Seria possível me darem um help nisso?

Obrigado desde já!

Atenciosamente,
Júlio

 
Postado : 28/09/2014 5:07 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

A nossa base de dados não ajuda em nada?
http://www.google.com.br/cse?cx=partner ... gsc.page=1

Poste seu arquivo modelo!!

Att

 
Postado : 28/09/2014 5:11 pm
(@juliowd)
Posts: 0
New Member
Topic starter
 

Oi. Não ajudou cara.
Não funcionaram as adaptações. Deu erro eu todas.

O arquivo modelo está aí.
A macro que estou querendo editar está no MODULO 5. A macro é a macro_13.
A aba que estou querendo fazer a classificação é a aba bermuda fem colcci.

Obrigado pela disposição!

Atenciosamente,
Júlio

 
Postado : 28/09/2014 5:58 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!!

Seria isso...?

Sub AleVBA_13059()
    Activeworkbook.worksheets("bermuda fem colcci").Sort.SortFields.Clear
    Activeworkbook.worksheets("bermuda fem colcci").Sort.SortFields.Add Key:= _
        Range("B9", Range("B65536").End(xlUp)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    Activeworkbook.worksheets("bermuda fem colcci").Sort.SortFields.Add Key:= _
        Range("N9", Range("N65536").End(xlUp)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With Activeworkbook.worksheets("bermuda fem colcci").Sort
        .SetRange Range("B9:N65536")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Att

 
Postado : 28/09/2014 6:59 pm
(@juliowd)
Posts: 0
New Member
Topic starter
 

Oi!!
O problema está no

Activeworkbook.worksheets("bermuda fem colcci").

Ele é variável. É que este código se aplica em várias abas.
Usei o

Activesheet.

mas não deu.
=/

 
Postado : 28/09/2014 7:03 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Tente ...

Sub AleVBA_13059V2()
    Activeworkbook.ActiveSheet.Sort.SortFields.Clear
    Activeworkbook.ActiveSheet.Sort.SortFields.Add Key:= _
        Range("B9", Range("B65536").End(xlUp)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    Activeworkbook.worksheets("bermuda fem colcci").Sort.SortFields.Add Key:= _
        Range("N9", Range("N65536").End(xlUp)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With Activeworkbook.ActiveSheet.Sort
        .SetRange Range("B9:N65536")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
 
Postado : 28/09/2014 7:09 pm
(@juliowd)
Posts: 0
New Member
Topic starter
 

Perfeito Alexandre!!
Códigos básicos, eu sabia!!!
Esse aprendi e não esqueço mais. Até já salvei na minha lista de códigos que sei que usarei mto ainda.
Valeu mesmo cara! Muitíssimo obrigado!!! Neste domingo a noite, ainda!!!
Tenha uma excelente semana!!!
Bom descanso!
Abração!!!

 
Postado : 28/09/2014 7:19 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Eu fico feliz que resolveu, obrigado pelo retorno!!

Att

 
Postado : 29/09/2014 5:32 am