Página 1 de 1

INSERIR TABELA - MACRO

Enviado: 20 Ago 2019 às 21:45
por JNilson
Amigos, boa noite.

Estou fazendo um filtro avançado para outra planilha (copiando os dados da planilha A para a planilha B). Após a execução da macro que faz o filtro avançado, estou chamando outra macro para transformar o intervalo filtrado em formato de tabela.

Não estou conseguindo porque a macro delimita o intervalo a ser formatado como tabela, conforme se nota abaixo (o intervalo "B12:P122"). Com isso, se os dados filtrados superarem esse intervalo, a tabela não abarcará todo o conteúdo pesquisado. Preciso que o intervalo a ser transformado em tabela seja dinâmico, coincida com os dados filtrados.

Fico grato se puderem ajudar.

Sub Formatar_Como_Tabela()
'

Range("B12").Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$B$12:$P$122"), , xlYes).Name = _
"Tabela_Reta_Final"
Range("Tabela_Reta_Final[#All]").Select
ActiveSheet.ListObjects("Tabela_Reta_Final").TableStyle = ""
ActiveSheet.ListObjects("Tabela_Reta_Final").ShowAutoFilterDropDown = False
Range("Tabela_Reta_Final[[#Headers],[Disciplina]]").Select
End Sub

Re: INSERIR TABELA - MACRO

Enviado: 22 Ago 2019 às 11:31
por babdallas
Veja se ajuda. Se não der, anexe a pasta de trabalho, por favor.
Código: Selecionar todos
Option Explicit

Sub Formatar_Como_Tabela()
    Dim lngUltLin       As Long
    Dim lngUltCol       As Long
    
    With wshTeste       'Aqui você muda para o codename da sua planilha
        lngUltLin = .Cells(.Rows.Count, 2).End(xlUp).Row
        lngUltCol = .Cells(12, .Columns.Count).End(xlToLeft).Column

        .ListObjects.Add(xlSrcRange, .Range(.Cells(12, 2), .Cells(lngUltLin, lngUltCol)), , xlYes).Name = "Tabela_Reta_Final"
        
        .Range("Tabela_Reta_Final[#All]").Select
        .ListObjects("Tabela_Reta_Final").TableStyle = ""
        .ListObjects("Tabela_Reta_Final").ShowAutoFilterDropDown = False
        .Range("Tabela_Reta_Final[[#Headers],[Disciplina]]").Select
    End With
End Sub