Ir ao conteúdo
  • Cadastre-se
Tiago Araújo

RESOLVIDO como percorrer com loop apenas as célular visíveis no filtro - excel 2007

Recommended Posts

Boa noite,

 

 

como faço para percorrer com o loop, apenas as células visíveis no filtro? Acredito que se usa o 'xlCellTypeVisible', mas não sei como encaixá-lo em algo como:

 

do while worksheets("Plan1").cells(i,1).value <> ""

 

  i=i+1

 

loop

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites


Sub LoopPorCélulasVisíveis()

 Dim cél As Range

  For Each cél In Range("A1", Cells(Rows.Count, "A").End(xlUp)).SpecialCells(xlCellTypeVisible)

   MsgBox cél.Address(0, 0)

   

  Next cél

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites
Bom dia osvaldo, é isso mesmo... 
 
eu encontrei uma outra maneira, mas no meu caso estou usando em um filtro. No caso o A15 seria a linha do cabeçalho. E também usei o End(xlDown) pois ele seleciona pra baixo até a última linha. No seu caso xlUp. Acredito que os dois tenha a mesma eficiência né?
 
   
Set rng = Range("A15", Range("A15").End(xlDown)).SpecialCells(xlCellTypeVisible)
    
For Each cell In rng
    
     celula = cell.Address(False, False)
 
Next cell
 
 
Obrigado!

Bom dia diego,

 

o loop é uma estrutura de programação que faz com que o código seja repetido várias vezes com determinadas condições, automatizando e deixando o seu programa muito eficiente e também facilitando a sua vida. Existem diversas estruturas. Aconselho você a procurar apostilas ou na internet mesmo, pois existem explicações completas e fáceis de entender. Eu achei um link legal:

 

http://juliobattisti.com.br/artigos/office/vba_access_p9.asp

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

E também usei o End(xlDown) pois ele seleciona pra baixo até a última linha. No seu caso xlUp. Acredito que os dois tenha a mesma eficiência né?
 

 

Olá, Tiago.

Cada um dos comandos acima é eficiente pois executa exatamente o que se espera dele e entendo que não cabe comparação entre os dois quanto à eficiência.

 

Talvez você queira dizer que os dois comandos retornam resultados iguais, é isso?

 

Se foi isso que você quis dizer, a resposta é depende! O comando 'xlUp' retorna sempre a última linha preenchida na tabela, na coluna pesquisada, ao passo que o 'xlDown' retorna a última linha preenchida somente se não houver células vazias na tabela, na coluna pesquisada.

 

Por exemplo no seu caso. Se houver dados em 'A15:A20', 'A21' vazia, mais dados em 'A22:A30'.

O comando 'xlUp' irá retornar linha 30, ao passo que o comando 'xlDown' irá retornar linha 20.

 

O uso de um ou de outro depende do resultado desejado. Se o objetivo for obter sempre a última linha preenchida o 'xlUp' é o cara.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×