Notifications
Clear all

Ordem crescente após intervalo

3 Posts
2 Usuários
0 Reactions
792 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá colegas. Estou precisando de uma ajuda para o código da planilha em anexo.
A macro que tenho ordena por ordem crescente os valores da coluna "Q" num determinado intervalo.
Como vou sempre acrescentando dados na planilha, preciso que a macro ordene tb esse novo intervalo sem mesclar com o intervalo anterior.

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

 
Postado : 17/04/2018 7:21 am
(@klarc28)
Posts: 971
Prominent Member
 
Option Explicit



Sub SELECIONARINTERVALOR()
    
    Application.ScreenUpdating = False
    
    Dim LINHA As Long
    
    
    For LINHA = 3 To Range("B" & Rows.Count).End(xlUp).Row + 3
        
        If Plan1.Range("B" & LINHA).Value = "" And Plan1.Range("B" & LINHA + 1).Value = "" Then
            
            Plan1.Range("B" & LINHA - 1).Select
            
            
            
            Selection.End(xlUp).Select
            
            Dim LINHAINICIAL As Long
            
            LINHAINICIAL = Selection.Row
            Plan1.Range("B" & LINHA - 1).Select
            Range(Selection, Selection.End(xlUp)).Select
            
            Plan1.Range(Selection, Selection.End(xlToRight)).Select
            Dim INTERVALO As String
            INTERVALO = Selection.Address
            
            
            
            ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Clear
            ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("Q" & LINHAINICIAL & ":Q" & LINHA - 1), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            With ActiveWorkbook.Worksheets("Plan1").Sort
                .SetRange Range(INTERVALO)
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
                    LINHA = LINHA + 2

        End If
    Next LINHA
    
    Application.ScreenUpdating = True
    
End Sub


 
Postado : 17/04/2018 9:56 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Maravilha.
Era isso mesmo que estava precisando.
Muito obrigado klarc28.

Preciso adaptar esse código em outra pasta só que o intervalo selecionado em vez de ir até coluna "U" como esta, tem que ir até coluna "AE".

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

 
Postado : 17/04/2018 10:53 am