Página 1 de 1

Filtro por VBA em diferentes planilhas

Enviado: 06 Jun 2017 às 19:31
por alexborges
Prezados,

Não conheço muito sobre VBA mas estou aprendendo aos poucos e na marra...
Vai ser um pouco confuso de explicar, mas vamos lá:

Tenho uma Pasta de Trabalho do Excel que contém uma planilha referente a cada mês (Janeiro, Fevereiro [...])
Dentro de cada planilha eu inseri uma tabela com o mesmo nome da planilha, ou seja, minha Tabela1 vai ser Janeiro, Tabela2 Fevereiro e assim por diante.
Eu criei um UserForm que adiciona os dados nas tabelas automaticamente dependendo da data da notícia.
Por exemplo: se a data da notícia for 06/06/2017 os dados serão inseridos na tabela de Junho.

Até aí tudo bem.

O que eu queria era que ao fechar o UserForm ele filtrasse uma coluna específica da planilha do mês atual.
O que eu consegui até agora foi o que está no código abaixo, mas só para uma tabela específica, porque não consigo substituir "JUNHO" por MesNome nessa parte:

Range("JUNHO[[#All],[LEGENDA]]"), xlSortOnCellColor, xlAscending, , _
xlSortNormal).SortOnValue.Color = RGB(252, 228, 214)

Por enquanto estou usando como Macro.
Código: Selecionar todos
Dim MesNome As String
    MesNome = Format(UserForm1.DataRegistro.Text, "mmmm")
    
    
    ActiveWorkbook.Worksheets(MesNome).ListObjects(MesNome).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(MesNome).ListObjects(MesNome).Sort.SortFields.Add( _
        Range("JUNHO[[#All],[LEGENDA]]"), xlSortOnCellColor, xlAscending, , _
        xlSortNormal).SortOnValue.Color = RGB(252, 228, 214)
    With ActiveWorkbook.Worksheets(MesNome).ListObjects(MesNome).Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Re: Filtro por VBA em diferentes planilhas

Enviado: 08 Jun 2017 às 16:41
por alexandrevba
Boa tarde!

Você poderia postar seu arquivo modelo?


Att

Filtro por VBA em diferentes planilhas

Enviado: 14 Jun 2017 às 18:31
por alexborges
Alexandre, boa tarde!

Consegui resolver colocando referência à célula onde quero fazer o filtro, no caso:

Worksheets(MesNome).Range("H2")
Código: Selecionar todos
ActiveWorkbook.Worksheets(MesNome).ListObjects(MesNome).Sort.SortFields.Add( _
        Worksheets(MesNome).Range("H2"), xlSortOnCellColor, xlAscending, , _
        xlSortNormal).SortOnValue.Color = RGB(252, 228, 214)
    With ActiveWorkbook.Worksheets(MesNome).ListObjects(MesNome).Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply