Página 1 de 1

trocar intervalo fixo do filtro por até a ultima célula preenchida

Enviado: 21 Jul 2021 às 05:06
por marcoenz
Prezados, bom dia

eu tenho o seguinte código
Código: Selecionar todos
    Range(Selection, Selection.End(xlDown)).Select
    Range("B4:E8").Select
    ActiveWorkbook.Worksheets("base").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("base").Sort.SortFields.Add2 Key:=Range("B4:B8"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("base").Sort
        .SetRange Range("B5:E8")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
ele faz um filtro na minha coluna B, onde eu tenho data, minhas informações começam na célula b4 e vai até b8, porém se eu acrescentar mais itens na coluna B, o filtro fica fixo até a celula b8, alguém sabe como faço para fazer o código pegar até a ultima data preenchida na minha coluna B?

seria por exemplo:

Código: Selecionar todos
    ActiveWorkbook.Worksheets("base").Sort.SortFields.Add2 Key:=Range(Selection, Selection.End(xlDown)), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("base").Sort
        .SetRange Range(Selection, Selection.End(xlDown))
não sei se é dessa forma que faz, se alguém puder me ajudar já agradeço

muito obrigado

Re: trocar intervalo fixo do filtro por até a ultima célula preenchida

Enviado: 21 Jul 2021 às 08:20
por Foxtri
Bom dia.
Você pode usar o exemplo que apresento.
Dim Ulin As Long
Ulin = Cells(Rows.Count, "B").End(xlUp).Row
With ActiveWorkbook.Worksheets("base").Sort
.SetRange Range("B5:E" & Ulin)
No caso os dados estariam na Coluna "B"
Veja conforme a sua realidade
Até
Foxtri