Notifications
Clear all

Movimentar celulas com filtro ativo no Excel

6 Posts
3 Usuários
0 Reactions
1,524 Visualizações
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

Boa tarde pessoal!

Quando estou com a planilha filtrada, o comando activecell.offset(1,0) seleciona uma casa abaixo da célula ativa. Porém, quando estou com algum filtro ligado, este comando continua obedecendo ao mesmo critério, ou sejá, não seleciona a célula, considerando o filtro, mas a célula que está abaixo da célula ativa, independentemente do filtro feito. EX:

Célula ativa = A1 (Cabeçalho da tabela)
Activecell.offset(1,0).select = Move a célula de A1 para A2.

Quando eu filtro a tabela, a primeira célula visível abaixo da célula A1 é a célula A35, logo, gostaria que o comando offset(1,0) selecionasse ela, mas ele continua selecionando a célula A2.

Como consigo resolver isso?

Muito obrigado!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 11/05/2017 9:07 am
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

Escrevi na correria porque tinha que bater ponto aqui no serviço. Se não conseguirem entender (por causa dos erros de escrita), observem o exemplo que a partir dele já dá para ter uma ideia. Caso contrário, digam aí que tento reformular o questionamento.

Abç

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 11/05/2017 10:23 am
(@skulden)
Posts: 170
Estimable Member
 

Experimente isto:

 

Again:

If ActiveCell.Offset(1, 0).Rows.Hidden = True Then
    
    ActiveCell.Offset(1, 0).Select
    GoTo Again
Else
    
    ActiveCell.Offset(1, 0).Select
    
End If
    

Se a resposta lhe foi útil, clique no joinha!

 
Postado : 11/05/2017 10:44 am
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

Obrigado pela resposta, mas essa rotina aí provocou um loop eterno na planilha. Não consegui adaptar!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 11/05/2017 1:40 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde Leandro,

Tente colocar o código do skulden em uma rotina de repetição.

Por exemplo:

Sub Exemplo()
    
    Dim i       As Double
    Dim Nlin    As Double
    
    Nlin = Range("A1048575").End(xlUp).Row
    
    Range("A1").Select
    
    For i = 1 To Nlin
        
        
        If ActiveCell.Offset(1, 0).Rows.Hidden = True Then
           
            ActiveCell.Offset(1, 0).Select
            
    
        Else
           '
            ActiveCell.Offset(1, 0).Select
           'Sai do For
            Exit For
            
        End If
    
    
    End If
    
End Sub

att,

 
Postado : 11/05/2017 2:56 pm
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

Obrigado pela força bruno e skulden, deu certo agora!

Abração!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 12/05/2017 5:26 am