- 06 Jun 2017 às 19:31
#23728
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.
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