Ir ao conteúdo

Excel Excel VBA ordenar corretamente


Ir à solução Resolvido por Victor Comparini,

Posts recomendados

Postado

Boa Noite Amigos

 

Procurei na net e encontrei este código que está fazendo parte do que preciso....

Option Explicit

Sub Macro1()

Dim linha As Long

linha = 1

While ThisWorkbook.Sheets("Página1").Range("J" & linha).Value <> ""
    linha = linha + 1
    Wend
   linha = linha - 1
   'Range("A11:I" & linha).Select
    Range("A11:P58").Select
    ActiveWorkbook.Worksheets("Página1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Página1").Sort.SortFields.Add Key:=Range("J11:J58" & linha _
        ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Página1").Sort
        .SetRange Range("A11:P58")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    
End Sub

ele classifica os dados de A11:P58 de acordo com os números na coluna J.

só que ele na coluna J está ficando assim:

1

1

11

15

2

20

22

3

3

3

30

 

e preciso que fique assim

1

1

2

3

3

3

11

15

20

22

30

 

alguém sabe em qual linha é o problema?

  • Solução
Postado

Olá

 

testando aqui, consegui assim:

 

    With ActiveWorkbook.Worksheets("Planilha1").Sort
        .SetRange Range("J11:J58")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply

 

IMPORTANTE: Certifique-se de que os número estão formatados como números, pois se estiverem como texto, pode ser ele irá manter a formatação que você colocou a baixo.

  • Curtir 1
Postado

Opa!

Deu certo, fiz a alteração que você fez, e tive que mudar a formatação da coluna! 😀

aproveitando e já abusando da boa vontade...

esse código esta em um modulo, e são mais de 80 planilhas, tem como excutar o codigo toda vez que clucar em outra planilha, tipo, ta na plan1, clico na plan2, ele executa, clico na plan3 executa novamente, sem ter que colocar um "ActiveSheet" em cada uma delas pra chamar o modulo?

adicionado 24 minutos depois

opa!

 

consegui aqui parceiro!

 

Muito obrigado pela ajuda!

 

Forte Braço!

 

😁

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...