Notifications
Clear all

Listar números em ordem crescente/decrescente

6 Posts
3 Usuários
0 Reactions
4,440 Visualizações
(@bracinho)
Posts: 69
Trusted Member
Topic starter
 

Pessoal,

Esse assunto já foi abordado no planilhando e, por sinal, foi aqui onde resolvi a minha dúvida sobre isso.

Porém, como ilustrado na imagem abaixo, ao clicar em ranking, afim de colocá-los em ordem, os números acima de 10 não obedecem ao comando.

Vocês teriam uma ideia de como se resolve isso?

 
Postado : 28/10/2015 4:23 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pela imagem apenas, ficarei no achometro. Acho eu que o simbolo "°" está concatenado ao numero do ranking; resultando assim em um texto.
Como texto a ordem está correta.

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

 
Postado : 28/10/2015 5:18 pm
(@rilust)
Posts: 387
Reputable Member
 

nao entendi direito. podeira explicar melhor?

Espero ter Ajudado. Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]

 
Postado : 29/10/2015 7:20 am
(@bracinho)
Posts: 69
Trusted Member
Topic starter
 

Pela imagem apenas, ficarei no achometro. Acho eu que o simbolo "°" está concatenado ao numero do ranking; resultando assim em um texto.
Como texto a ordem está correta.

Reinaldo,

Eu utilizo esse código para carregar a listview:

With Me.ListView4
         .ColumnHeaders.Clear
         .ListItems.Clear
         .View = lvwReport
         .FullRowSelect = True

    Sheets("GRAFICO_CLIENTE").Select

    Application.OnKey "{Escape}", ""
           With UserForm80.ListView4
                .Gridlines = True
                .View = lvwReport
                .FullRowSelect = True
                .ColumnHeaders.Add Text:="ID"
                .ColumnHeaders.Add Text:="Centro de Custo"
                .ColumnHeaders.Add Text:="Conta Razão"
                .ColumnHeaders.Add Text:="Cliente"
                .ColumnHeaders.Add Text:="Total Ano"
                .ColumnHeaders.Add Text:="Ranking"
               
             
          End With
    Dim lastrow
    Dim X

    Dim li

           
            'Adiciona itens
    For X = 42 To 199 'aqui ele preenchera até a linha 30, mas eu quero que preencha até a ultima linha que possua dados.
    If Plan30.Cells(X, "y").Value <> "" Then
              Set li = ListView4.ListItems.Add(Text:=Plan30.Cells(X, "y").Value)
              li.ListSubItems.Add Text:=Format(Plan30.Cells(X, "z").Value, "0.00")
              li.ListSubItems.Add Text:=Format(Plan30.Cells(X, "aa").Value, "0.00")
              li.ListSubItems.Add Text:=Format(Plan30.Cells(X, "ab").Value, "0.00")
              li.ListSubItems.Add Text:=Format(Plan30.Cells(X, "ac").Value, "0.00")
              li.ListSubItems.Add Text:=Format(Plan30.Cells(X, "aD").Value, "0°")
    End If
    Next

    Call TamanhoColAutomatico4
    End With
 
Postado : 29/10/2015 10:20 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Ja tentou odernar uma range que contenha numeros e texto; nessa situação os numeros são considerados textos tambem; então ao ordenar primeiro vem todos os que comecem com zero, a seguir todos os que comecem com 1 ...
Então se ao ordenar pelo rank, tem a sequencia 1,10,11..,2,3,...; entende-se que o campo/ordenamento está considerando texto não numeros.
De uma lida em http://www.planilhando.com.br/forum/viewtopic.php?t=14078&p=73498 ou http://www.planilhando.com.br/forum/viewtopic.php?t=8988&p=47334, entre outros (procure no fórum por Ordenar Listview)

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

 
Postado : 29/10/2015 11:04 am
(@bracinho)
Posts: 69
Trusted Member
Topic starter
 

Reinaldo,

Absorvi pouco dos links sugeridos por você. Em um deles, vi o código postado pelo Mauro Coutinho, para ordenar os dados ao clicar em uma coluna.

Eu o utilizo, veja:

    'Ordena pela Coluna Clicada
    Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
         With ListView1
            If .SortKey = ColumnHeader.Index - 1 Then
               If .SortOrder = lvwAscending Then
                  .SortOrder = lvwDescending
               Else
                  .SortOrder = lvwAscending
               End If
            Else
               .SortKey = ColumnHeader.Index - 1
            End If
             .Sorted = True
        End With
     
    End Sub

Teria um código que ordenaria automaticamente uma determina coluna na listview ?

 
Postado : 29/10/2015 12:31 pm