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