Notifications
Clear all

Selecionar primeira celula vazia, mas com filtro ativo

9 Posts
2 Usuários
0 Reactions
853 Visualizações
(@rfpcl)
Posts: 0
New Member
Topic starter
 

Galera, selecionar a ultima celula estou usando esse codigo:

linha=Sheets("plan1").range("a200").end (xlup).row + 1

O problema é que se o filtro estiver ativo, quando adiciono essa linha a mais que supostamente seria a vazia, o excel seleciona a linha que esta "escondida", ele nao entende o filtro, ou as Hidden rows.
E ai, como resolvo isso?

 
Postado : 30/03/2015 1:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Já tentou usar?

.SpecialCells(xlCellTypeVisible)

Poste seu arquivo modelo!

Att

 
Postado : 30/03/2015 2:34 pm
(@rfpcl)
Posts: 0
New Member
Topic starter
 

ONDE COLOCO ESSE CODIGO?

 
Postado : 30/03/2015 3:14 pm
(@rfpcl)
Posts: 0
New Member
Topic starter
 

Aqui vai

 
Postado : 30/03/2015 4:56 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Seria isso?

Sub AleVBA_15202()

i = Range("A" & Rows.Count).End(xlUp).Row
Range("A1").Select
    For n = 1 To i
        If ActiveCell.Value <> "" Then
        ActiveCell.Offset(2, 0).Select
        End If
    Next
End Sub

Att

 
Postado : 31/03/2015 6:15 am
(@rfpcl)
Posts: 0
New Member
Topic starter
 

Alexandre, obrigado pela atençao, mas ainda pega linhas escondidas. Talvez seria o caso de usar um filtro que desabilitasse os autosfiltro e depois aplicar o codigo. O que vc acha? Vc sabe me dizer um cod para desabilitar todos os filtros da planilha? Minha planilha verdadeira tem cerca de 30 colunas.
abraço e obrigado de novo.

 
Postado : 31/03/2015 9:36 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Seria isso?

Sub AleVBA_15202()
i = Range("A" & Rows.Count).End(xlUp).Row
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
Range("A1").Select
    For n = 1 To i
        If ActiveCell.Value <> "" Then
        ActiveCell.Offset(1, 0).Select
        End If
    Next
End Sub

Att

 
Postado : 31/03/2015 9:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Ou tente assim..

Sub AleVBA_15202V3()
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
Range("A65536").End(xlUp).Offset(1).Select
End Sub

Att

 
Postado : 31/03/2015 9:47 am
(@rfpcl)
Posts: 0
New Member
Topic starter
 

Achei uma soluçao.

Basta colocar range("a1").autofilter no inicio e no fim do codigo, facaria assim:

Sheets("plan1").range("a1").autofilter

i = Range("A" & Rows.Count).End(xlUp).Row
Range("A1").Select
For n = 1 To i
If ActiveCell.Value <> "" Then
ActiveCell.Offset(2, 0).Select
End If
Next

Sheets("plan1").range("a1").autofilter

Obrigado, Alexandre.

 
Postado : 31/03/2015 10:27 am