Página 1 de 1

Classificar e ordenar dezenas - menor para o maior

Enviado: 16 Jun 2017 às 03:31
por ruymds
Olá pessoal,

possuo uma planilha sequencial de 15 dezenas aleatórias e preciso realizar a classificação e ordenação dessas. Porém, ao selecionar o comando de CLASSIFICAR no excel o mesmo não realizar.

4 5 6 7 8 23 10 13 14 20 21 22 9 24 25
1 2 3 5 6 7 8 9 10 11 13 14 20 22 24
1 2 3 5 6 7 8 9 10 11 13 14 20 22 25
1 2 3 5 6 7 8 9 10 11 13 14 20 23 24
3 25 6 7 8 9 10 13 14 20 21 22 23 24 5
1 2 3 5 6 7 8 9 10 11 13 14 20 23 25

São muitas linhas, teria como fazer essa classificação/ordenação sem a duplicação da planilha caso ocorra a utilização da função menor.

Segue anexo o modelo. Obrigado.

Re: Classificar e ordenar dezenas - menor para o maior

Enviado: 16 Jun 2017 às 08:55
por Deciog
ruymds , Bom Dia.

Se entendi o que você quer, confere este modelo

Se minha resposta foi útil, clique em obrigado

Decio

Re: Classificar e ordenar dezenas - menor para o maior

Enviado: 16 Jun 2017 às 09:06
por osvaldomp
Veja se a solução do arquivo abaixo ajuda.

Re: Classificar e ordenar dezenas - menor para o maior

Enviado: 16 Jun 2017 às 13:20
por Edcronos
uso de uma macro com array, bem rapida
http://www.comoganharnaloteria.com.br/f ... ent=279760

algo como essa que é facilmente ajustavel
Código: Selecionar todos
Sub Ordena_Seleção_decrescente()

     coluna_inicial = "b"
     coluna_final = "h"
     Linha_inicial = 6
     linha_final = 7

     Coluno = Range(coluna_inicial & Linha_inicial, coluna_final & linha_final).Value2
     Lfim = UBound(Coluno, 1): TCo = UBound(Coluno, 2)
     ci1 = 1   ' coluna inicial de dados da array

     For Lx = 1 To Lfim
          inC = ci1
          i = inC + 1
          Do
               a = Coluno(Lx, inC): b = Coluno(Lx, inC + 1)
               If a < b Then
                    Coluno(Lx, inC) = b: C = a
                    Coluno(Lx, inC + 1) = C
                    If inC > ci1 Then inC = inC - 1
               Else
                    inC = i: i = i + 1
               End If
          Loop Until inC = TCo
     Next

     '----------------------------------------------------------------------------------------------------
     Range(coluna_inicial & Linha_inicial, coluna_final & linha_final).Value2 = Coluno

End Sub

Re: Classificar e ordenar dezenas - menor para o maior

Enviado: 16 Jun 2017 às 13:22
por ruymds
Então pessoal, agradeço pela dica mas não resolveu.

Seria algo assim

Matriz original:

4 5 6 7 8 23 10 13 14 20 21 22 9 24 25
1 2 3 5 6 7 8 9 10 11 13 14 20 22 24
1 2 3 5 6 7 8 9 10 11 13 14 20 22 25
1 2 3 5 6 7 8 9 10 11 13 14 20 23 24
3 25 6 7 8 9 10 13 14 20 21 22 23 24 5
1 2 3 5 6 7 8 9 10 11 13 14 20 23 25

Matriz Ordenada

1 2 3 5 6 7 8 9 10 11 13 14 20 22 24
1 2 3 5 6 7 8 9 10 11 13 14 20 22 25
1 2 3 5 6 7 8 9 10 11 13 14 20 23 24
1 2 3 5 6 7 8 9 10 11 13 14 20 23 25
3 5 6 7 8 9 10 13 14 20 21 22 23 24 25
4 5 6 7 8 9 10 13 14 20 21 22 23 24 25

Alguma outra alternativa?

Grato.

Re: Classificar e ordenar dezenas - menor para o maior

Enviado: 16 Jun 2017 às 13:38
por Edcronos
desculpe entendi errado

mas pq não usa o classificar do excel?

Classificar e ordenar dezenas - menor para o maior

Enviado: 16 Jun 2017 às 13:51
por ruymds
Edcronos,

utilizei mas não classificou.

Re: Classificar e ordenar dezenas - menor para o maior

Enviado: 16 Jun 2017 às 15:10
por osvaldomp
Código: Selecionar todos
Sub OrdenaLinhasV2()
 Dim k As Long
  For k = 1 To Cells(Rows.Count, 1).End(3).Row
   Cells(k, 1).Resize(, 15).Sort Key1:=Cells(k, 1), Order1:=xlAscending, Orientation:=xlLeftToRight
  Next k
    ActiveSheet.Sort.SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveSheet.Sort
        .SetRange Range("A1:O" & Cells(Rows.Count, 1).End(xlUp).Row)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Classificar e ordenar dezenas - menor para o maior

Enviado: 16 Jun 2017 às 15:27
por ruymds
Obrigado Osvaldo, e aos demais que indicaram possíveis soluções.

Obrigado mesmo.