Notifications
Clear all

Aparecer somente os 10 Últimos cadastrados

5 Posts
2 Usuários
0 Reactions
879 Visualizações
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Bom dia !

Ex: Estou cadastrando através da linha 1, vou inserindo linha e vai descendo os cadastros, pois tem 20 linhas de cadastro, sendo até aqui tudo bem.

Como faço para mostrar somente as 10 últimos cadastros ? ( A partir da 11 pra baixo quero ocultar )

Obrigado !

OBS: Título é Aparecer somente os 10 últimos cadastrados

 
Postado : 11/12/2016 7:20 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se seria isto :

Sub Oculta_Linhas_Acima_de_10()
    Dim sUlin As Integer
    Dim sLinInicio As Integer
    Dim sOculta As Integer
    
    'Linha inicial com cabeçalho
    sLinInicio = 2
    
    'Qde linhas a exibir
    slinhas = 10
    
    sUlin = Range("A" & Rows.Count).End(xlUp).Row

    If sUlin > slinhas Then
        
        sOculta = sUlin - slinhas
        
        Rows(sLinInicio & ":" & sOculta).EntireRow.Hidden = True
        
    End If

End Sub
 
Postado : 11/12/2016 9:37 am
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Não funcionou, fiz aqui um rapidinho pra ver, só clicar no ADD, sendo que vai colocando sem ocultar

Obrigado

 
Postado : 11/12/2016 12:41 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A rotina não irá funcionar por dois motivos :
Primeiro, quando copiamos e colamos atraves de rotina, não é acionado o Evento Change, ele só funciona quando feito manualmente.

Segundo, como você não havia detalhado, fui por suposição e construi a rotina para ocultar baseando que os dados estaria na coluna "A".
sUlin = Range("A" & Rows.Count).End(xlUp).Row - altere a letra para a coluna que pretende fazer a contagem.

O ideal é eliminar a rotina do evento Change e utilizar a rotina que enviei ajustando a letra da coluna e fazendo a chamada no final da rotina InserirLinha

Sub InserirLinha()

    Application.EnableEvents = False
    Application.ScreenUpdating = False
   

    Dim wsAtiva As Worksheet

    Set wsAtiva = ThisWorkbook.ActiveSheet
   
    wsAtiva.Range(Cells(1, 12), Cells(1, 14)).Copy: wsAtiva.Range(Cells(3, 12), Cells(3, 14)).Offset(-1, 0).Insert shift:=xlDown
    
    wsAtiva.Range(Cells(2, 12), Cells(2, 14)).Interior.Color = RGB(255, 255, 255)
 
    wsAtiva.Range(Cells(2, 12), Cells(2, 14)).Borders.Color = RGB(212, 212, 212)

   
    Application.CutCopyMode = False
    Set wsAtiva = Nothing
    
    Application.ScreenUpdating = True
    Application.EnableEvents = True
   
   Call Oculta_Linhas_Acima_de_10
   
End Sub

Sub Oculta_Linhas_Acima_de_10()
    Dim sUlin As Integer
    Dim sLinInicio As Integer
    Dim sOculta As Integer
    
    'Linha inicial com cabeçalho
    sLinInicio = 2
    
    'Qde linhas a exibir
    slinhas = 10
    
    sUlin = Range("L" & Rows.Count).End(xlUp).Row

    If sUlin > slinhas Then
        
        sOculta = sUlin - slinhas
        
        Rows(sLinInicio & ":" & sOculta).EntireRow.Hidden = True
        
    End If

End Sub
 
Postado : 11/12/2016 1:17 pm
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Só que está ocultando linha 1 e 2, sendo que acaba sumindo a matriz da cópia e o botao da linha 2

 
Postado : 11/12/2016 4:18 pm