Notifications
Clear all

Organizar por Ordem Alfabetica

8 Posts
4 Usuários
0 Reactions
1,634 Visualizações
(@korgoth)
Posts: 29
Eminent Member
Topic starter
 

Boa tarde,

Precisava de uma ajuda para fazer essa função de organização alfabética

No caso tenho uma planilha onde as colunas C e G são estados, e preciso que eles fiquem organizados a partir da coluna C.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    [C4:AG301].Sort Key1:=[C4], Order1:=xlAscending
    'KEY1 É A COLUNA QUE VC QUER QUE CLASSIFIQUE
    'PODERIA SER C2 QUE CLASSIFICARIA PELA COLUNA C
End Sub
Forum Hardware e passado pelo Dr.Raladão

Essa função encontrada em outro fórum até funcionou de forma correta, porem o que ocorre é

se eu tenho 3 estados de Saída "C" iguais por exemplo SP e estados diferentes de Entrada "G", a ordem fica total aleatória, ou mesmo com 2 iguais

SP - GO
SP - MG
SP - GO

então precisava que o primeiro código para organização na coluna C trabalhasse com algum outro na coluna G para que ficasse correto,

Obrigado!!

 
Postado : 27/01/2016 9:41 am
(@mprudencio)
Posts: 2749
Famed Member
 

Fazer essa classificação manualmente nao resolve????????

Dados > Classificar

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 27/01/2016 9:55 am
(@korgoth)
Posts: 29
Eminent Member
Topic starter
 

Infelizmente Não, manualmente é totalmente inviável. :cry:

 
Postado : 27/01/2016 9:57 am
(@mprudencio)
Posts: 2749
Famed Member
 

Clicar em uma celula depois

Ctrl+ * do teclado numerico

ou Ctrl+Shift+ 8 do teclado alfanumerico
Clicar em um botao determinar as colunas que vai classificar e confirmar é inviavel????

Nao entendi!! :shock:

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 27/01/2016 11:23 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Sinceridade não entendi, e creio que o colega Marcelo também, visto que o proposto por ele é extremamente simples.
Quando classifica uma range por uma coluna, todos os dados da linha acompanham a classificação.
Aparentemente não é isso que deseja, pode explicar melhor e demonstrar em seu exemplo (manualmente) como espera que fique.

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

 
Postado : 27/01/2016 11:24 am
(@robo8268)
Posts: 73
Trusted Member
 

Você pode fazer o seguinte.. Sheets(suaplaniha).Range(seuintervalo).Sort Key1:=Range(estado), Order:=xlAscending

 
Postado : 28/01/2016 5:21 am
(@korgoth)
Posts: 29
Eminent Member
Topic starter
 

Fiz a planilha com 3 exemplos, um sem nenhum codigo, o segundo com o codigo que está no topico, e o terceiro que é o como eu gostaria que ficasse com alguma codificação complementar,

e fazer manual não é viavel pois isso é só um exemplo da planilha que eu tenho, ela é de busca no sistema, e não será usada somente por mim, então não posso me dar o luxo de acreditar que o usuario final va "organizar" toda vez que for pesquisado o conteudo da mesma.

Obrigado!

 
Postado : 28/01/2016 5:24 am
(@mprudencio)
Posts: 2749
Famed Member
 

Esse codigo foi feito com o gravador de macros do excel

Ele esta utilizando o seguinte criterio de classificação

Coluna C e em seguida pela Coluna G em ordem alfabetica de A/Z

Cole o codigo em um Modulo e associe a um botao ou a outra macro que desejar..

Faça os testes, segue o codigo

Sub Classificar()
    Range("C1:G1").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("C2:C17"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("G2:G17"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Plan1").Sort
        .SetRange Range("C1:G17")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("C2").Select
End Sub




Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 28/01/2016 7:15 am