Onde está o erro ?
Ao clicar botão E1 ( COPIAR ) ele verifica se A1 até D1 se está vazio, caso ao contrário copia
para plan2
Sub Copiar()
Sub worksheet_change(ByVal faixa As Range)
If Range("A1:D1").Value = "" Then MsgBox ("Você deve preencher os campos !")
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
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
"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.