Ir para conteúdo
Fórum Script Brasil
  • 0

Navegar em células visíveis em uma tabela filtrada utilizando VBA


osmmiot

Pergunta

Olá pessoal! espero que estejam bem...

Estou trabalhando em um projeto meu e me deparei com um obstáculo que estou tendo dificuldade de solucionar (as vezes é até simples e me falta esse conhecimento). No meu projeto, o VBA filtra uma tabela a partir de informações cedidas pelo usuário e posteriormente ele irá navegar pela tabela filtrada realizando as modificações necessárias na tabela. O problema é que ao filtrar a tabela o VBA não navega apenas nas células visíveis e sim todas as células, até aquelas que estão ocultas devido o filtro. Existe alguma maneira de fazer ele navegar somente nas células visíveis da tabela? Digo isso, pois posso sanar o problema colocando uma estrutura de if e offset para células ocultas, entretanto a tabela possui mais de 10000 linhas o que torna o processo extremamente lento e isso é o que eu menos desejo. 

Por favor, se alguém puder me ajudar agradeceria imensamente!

 

 

Editado por osmmiot
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
On 5/17/2024 at 2:21 AM, osmmiot said:

Olá pessoal! espero que estejam bem...

Estou trabalhando em um projeto meu e me deparei com um obstáculo que estou tendo dificuldade de solucionar (as vezes é até simples e me falta esse conhecimento). No meu projeto, o VBA filtra uma tabela a partir de informações cedidas pelo usuário e posteriormente ele irá navegar pela tabela filtrada realizando as modificações necessárias na tabela. O problema é que ao filtrar a tabela o VBA não navega apenas nas células visíveis e sim todas as células, até aquelas que estão ocultas devido o filtro. Existe alguma maneira de fazer ele navegar somente nas células visíveis da tabela? Digo isso, pois posso sanar o problema colocando uma estrutura de if e offset para células ocultas, entretanto a tabela possui mais de 10000 linhas o que torna o processo extremamente lento e isso é o que eu menos desejo. 

Por favor, se alguém puder me ajudar agradeceria imensamente!

 

basketball legends

Estou me perguntando isso também. Tentei olhar nas configurações para ver se consigo filtrar o que preciso, mas não parece possível. Se isso puder ser corrigido, será muito mais conveniente e economizará tempo.

Editado por eemlyflink
Link para o comentário
Compartilhar em outros sites

  • 0

Você pode usar o código abaixo para iterar sobre todas as células visíveis.

Sub SomenteVisiveis()

    Dim rngVisivel As Range, cell As Range
    
    Set rngVisivel = Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
    
    For Each cell In rngVisivel
    
        ' Seu código
        MsgBox cell.Value
    
    Next

End Sub

Ou uma coluna específica, no caso a coluna 1.

Set rngVisivel = Columns(1).SpecialCells(xlCellTypeVisible)

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...