Página 1 de 1

Contar Colunas em Tabela

Enviado: 09 Jan 2019 às 13:26
por SandroLima
Boa tarde, pessoal

Qual a forma de retornar o número de uma coluna? Tenho uma tabela com 5 colunas

Registro Fluxo Periodicidade Data Dia da Semana

Pensei no seguinte código com a intenção de que retornasse o número da coluna "Data" (no caso 4):
Código: Selecionar todos
Option Explicit

Private Sub Workbook_Open()
    
    Application.ScreenUpdating = False
    
    Dim TabelaConsulta As ListObject
    Dim UCol As Long, Col_Data As Long
               
    Set TabelaConsulta = wshAtivDiarias.ListObjects("TB_ConsultaAtivCadastrada")
    'UCol = TabelaConsulta.ListColumns.Count.Columns(Range.("TB_ConsultaAtivCadastrada[Data]")).DataBodyRange
    UCol = TabelaConsulta.ListColumns.Count
    'Col_Data = TabelaConsulta.DataBodyRange.Columns(1,
    
    'Col_Data = TabelaConsulta.ListColumns("Data") - TabelaConsulta.ListColumns("Registro") + 1 'Nº da coluna "Data" da TB_ConsultaAtivCadastrada
    
    TabelaConsulta.ListRows(1).Range(1, 2).Value = "Entrada"
    TabelaConsulta.ListRows(1).Range(1, 3).Value = "Ocasional"
    'TabelaConsulta.ListRows(1).Range(1, Col_Data).Value = Date
    TabelaConsulta.ListRows(1).Range(1, 4).Value = Date
            
    Set TabelaConsulta = Nothing

    Application.ScreenUpdating = True

End Sub
Fiz dessa maneira pq a posição da coluna data pode variar na tabela. Porém não funcionou.

Como devo proceder?

Re: Contar Colunas em Tabela

Enviado: 09 Jan 2019 às 16:36
por SandroLima
Anexei a planilha para teste.

Obrigado.

Re: Contar Colunas em Tabela

Enviado: 09 Jan 2019 às 18:54
por gfranco
Amigo,
veja se é isso que precisa:

Re: Contar Colunas em Tabela

Enviado: 09 Jan 2019 às 20:35
por SandroLima
Showwww, gfranco.

Adequei para minha necessidade, após instalar o seu módulo e ficou assim:
Código: Selecionar todos
Option Explicit

Private Sub Workbook_Open()
    
    Application.ScreenUpdating = False
    
    Dim TabelaConsulta As ListObject
    Dim NColData As Long
    Dim NomeColuna1 As String
    'Dim UCol As Long, ColData As Long
    
    NomeColuna1 = "Data"
    
    Set TabelaConsulta = wshAtivDiarias.ListObjects("TB_ConsultaAtivCadastrada")
    
    NColData = RetornaColuna(TabelaConsulta, NomeColuna1)
    
    TabelaConsulta.ListRows(1).Range(1, NColData).Value = Date
    TabelaConsulta.ListRows(1).Range(1, 4).Value = "Entrada"
    TabelaConsulta.ListRows(1).Range(1, 5).Value = "Ocasional"
            
    Set TabelaConsulta = Nothing

    Application.ScreenUpdating = True

End Sub
Funcionou certinho. Muito obrigado.

Esse módulo pode ser adaptado para localizar a linha de uma palavra ou expressão?
Isso pode ser útil também... mas já resolveu o que eu precisava.

Mais uma vez obrigado.

Re: Contar Colunas em Tabela

Enviado: 09 Jan 2019 às 21:28
por gfranco
SandroLima escreveu:
Esse módulo pode ser adaptado para localizar a linha de uma palavra ou expressão?
Isso pode ser útil também... mas já resolveu o que eu precisava.

Mais uma vez obrigado.
Veja se atende.

Re: Contar Colunas em Tabela

Enviado: 09 Jan 2019 às 21:52
por SandroLima
Puxa, GFranco.

Funcionalidade ótima... vou testar mais ela entre hoje e amanhã antes de encerrar o tópico.

Muito obrigado mais uma vez...

Show!!!!