marcio, eu me basiei pelo modelo que anexou, se for colocar esta rotina em outro arquivo com colunas diferentes tem de ajustar na propriedade "Offset" :
Selection.Offset(sRowOrigem, 3).Copy Destination:=Selection.Offset(sRowDestino, 3) - onde as Variaveis sRow representam a linha e o numero depois da virgula a Coluna, ou seja o deslocamento.
Exemplificando :
Selection.Offset(0, 3).Select - o" 0 e o 3" representam (Linha.Coluna) supondo que a seleção está em A6 será selecionado D6 a terceira celula apos A3
Selection.Offset(1, 3).Select -  supondo que a seleção está em A6 será selecionado D7 a terceira celula apos A3 uma linha abaixo
pesquise sobre offset na propria ajuda do VBA para entender melhor como funciona ou no google encontrara varios links
Quanto a questão do Option Explicit, como em seu modelo ela não está não coloquei, ela serve para forçar a Declaração dos Tipos das Variáveis, então se tiver teremos de de declarar os tipos das Variáveis :
Dim sRowOrigem, sRowDestino ??? ficando
Dim sRowOrigem, sRowDestino As Long
Mas se quiser apagar os Option Explicit tambem pode.
Então pelo modelo que postou, para ajustarmos a formatação quando A6 for a celula selecionada, troque a rotina anterior por esta.
Private Sub inserirlinha_Click()
    Dim sLinAtiva  As Long
    Dim sRowOrigem, sRowDestino As Long
    'Selecione a linha antes de executar
    ActiveSheet.Unprotect
    
    'Armazena a linha selecionada
    sLinAtiva = Selection.Row
    
    'Verifica se estamos na linha 6 que é a primeira apos os rotulos
    'Define as variaveis de acordo com a linha selecionada
    If sLinAtiva = 6 Then
        sRowOrigem = 1
        sRowDestino = 0
    Else
        sRowOrigem = -1
        sRowDestino = 0
    End If
        With Selection.EntireRow
            .Insert
            Selection.Offset(sRowOrigem, 3).Copy Destination:=Selection.Offset(sRowDestino, 3)
                
                'Se for a linha 6 copiamos e colamos o formato
                If sLinAtiva = 6 Then
                    Selection.Offset(1, 0).Resize(RowSize:=1, ColumnSize:=4).Copy
                    Selection.PasteSpecial xlPasteFormats
                    Application.CutCopyMode = False
                End If
        
        End With
    Unload Me
    
    ActiveSheet.Protect
    
End Sub
[]s
                                                                                                	Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
 
                    
                    	
                            Postado : 22/07/2015 11:39 am