Pra começar apague essa linha
Sub worksheet_change(ByVal faixa As Range)
Depois coloque a msgbox abaixo do teste if
E por ultimo o excel nao reconhece o range em intervalos
Range("A1:D1").Value da tipos incompativeis
entao faça um if para cada celula, pessoalmente faria apenas para A1 ou D1 pq se o usuario começar a preencher dificilmente ira deixar de preencher toda a linha.
Assim funcionou
Sub copiar()
If Range("A1").Value = "" Then
MsgBox ("Você deve preencher os campos de A1 ate D1 !")
Else
Dim LR As Long
LR = Sheets("Plan2").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Plan1").Range("A1:D1").Copy Sheets("Plan2").Range("A" & LR + 1)
Sheets("Plan1").Range("A1:D1").ClearContents
End If
End Sub
Marcelo Prudencio
Microsoft Excel Brasil no Facebook
"Começar já é a metade do caminho."
Autor Desconhecido
Simplifica que simples fica.
Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.
Postado : 24/01/2016 3:25 pm