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
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 11/12/2016 1:17 pm