O que vc quer fazer afinal???
Muitas vezes corrigir o codigo da mais trabalho do que escrever um novo corretamente.
Outra coisa disponibilize um modelo (arquivo excel) de exemplo
Marcelo, me desculpe se estiver sendo grosseiro, mas se analisar a rotina postada, verá que estamos utilizando o Evento Worksheet_SelectionChange, e em consequencia as instruções serão executadas assim que selecionar as celulas que estão dentro do range definido e irá colorir a linha "SELECIONADA" e ao selecionar outra, tira a cor da selecionada anteriormente e colore a mesma.
Então devido ao Evento, se utilizarmos o CTRL+C ou o botão direito do mouse para copiar, ao selecionarmos outra celula o evento é chamado e automaticamente desabilitado o CTRL+V e a opção Colar e se na rotina tivermos "ActiveSheet.Paste" será emitida mensagem de erro.
Desta forma, não precisaríamos de um modelo especifico, e não vi duvida quanto da pergunta.
Voltando a questão e, acredito ter relação com o seu outro tópico sobre personalizar mensagem de ERROS, podemos utilizar uma "gambiarra" verificando se temos algo copiado e colar automáticamente antes das instruções do Evento terminarem, então tente da seguinte forma :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
'O OBJETO "TARGET" RECEBE A CÉLULA QUE ACABA DE SER SELECIONADA,
'POR CLIQUE DO MOUSE OU PELO TECLADO
'DESCOBRINDO QUAL A ÚLTIMA LINHA PREENCHIDA NA PLANILHA
ULTIMA = Range("A3").End(xlDown).Row
'Verifica se tem dados Copiados e vai para a rotina teste para colar
If Application.CutCopyMode > 0 Then
MsgBox "Tem dados Copiados, e vamos cola-los."
Call ColarAutomatico
End If
'SAIR DO PROCEDIMENTO SE A CÉLULA SELECIONADA NÃO ESTIVER ENTRE AS LINHAS 7 E A ÚLTIMA PREENCHIDA.
If Target.Row < 3 Or Target.Row > ULTIMA Then Exit Sub
'SAIR DO PROCEDIMENTO SE A CÉLULA SELECIONADA NÃO ESTIVER ENTRE AS COLUNAS 1 E 47 (DE A ATÉ AU).
If Target.Column < 1 Or Target.Column > 47 Then Exit Sub
'APLICANDO PADRÃO INICIAL EM TODAS AS CÉLULAS DA TABELA
With Range("A3" & ":AU" & ULTIMA)
.Interior.Pattern = xlNone
.Interior.TintAndShade = 0
.Interior.PatternTintAndShade = 0
.Font.Bold = False
End With
'COM A LINHA SELECIONADA (TARGET.ROW), DEFININDO FORMATAÇÃO DE DESTAQUE
With Range("A" & Target.Row & ":AU" & Target.Row)
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
.Interior.ThemeColor = xlThemeColorAccent1
.Interior.TintAndShade = 0.1
.Interior.PatternTintAndShade = 0
.Font.Bold = True
End With
Application.ScreenUpdating = True
End Sub
Sub ColarAutomatico()
ActiveSheet.Paste
End Sub
Teste e veja se da certo.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 23/12/2015 1:47 pm