Notifications
Clear all

Movimentar celulas com filtro ativo no Excel

6 Posts
3 Usuários
0 Reactions
1,522 Visualizações
(@leandroxtr)
Posts: 0
New 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!

 
Postado : 11/05/2017 9:07 am
(@leandroxtr)
Posts: 0
New 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ç

 
Postado : 11/05/2017 10:23 am
(@skulden)
Posts: 0
New 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
    

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

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

 
Postado : 11/05/2017 1:40 pm
(@brunoxro)
Posts: 0
New 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)
Posts: 0
New Member
Topic starter
 

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

Abração!

 
Postado : 12/05/2017 5:26 am