Boa tarde fairbanks!
Debuguei seu código e observei que quando você desprotegia a planilha BD, ele perdia a área de transferência (cópia da seleção da MATRIX!A21:K21). Basicamente, ele cancelava a seleção que você havia feito na MATRIX antes de desbloquear o BD.
Sendo assim, quando seu código faz o PasteSpecial (Colar Especial), não haviam mais dados copiados para transferência, o que ocasionava no erro em tempo de execução.
Quando o BD já estava desprotegido, ele não perdia a área de transferência e não gerava erro (pois o Excel não executava novamente o trecho que desprotege o arquivo).
@Para solucionar o problema, eu apenas inverti a sequência que ele realiza as duas tarefas: Antes de copiar a MATRIX, ele realiza o desbloqueio do BD... dessa forma, ele não perderá a referência.
Substitua o código da sua planilha pelo seguinte código (as linhas alteradas estão com o comentário ' MURILO):
Sub Banco_de_Dados_Clique()
Resposta = MsgBox("Tem certeza que quer salvar dados no Banco de Dados? É necessário ter preenchido todos os dados para armazenar no banco de dados.", vbYesNo + vbQuestion, "Armazenar")
If Resposta = vbYes Then
Sheets("BD").Visible = True
Sheets("MATRIX").Range("A21:K21").Select
Sheets("BD").Unprotect "B" ' MURILO
Selection.Copy ' MURILO
Sheets("BD").Select
Range("A1:K1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
ActiveSheet.Protect "B"
Sheets("BD").Visible = False
Sheets("GRÁFICOS").Visible = True
End Sub
Leia as REGRAS
Utilize arquivos COMPACTADOS
PESQUISE
AGRADEÇA clicando na mãozinha ao lado da ferramenta citar.
Marque o tópico como [Resolvido], clicando no √ ao lado do botão citar.
Abraços,
Murilo L
------------
e-mail: [email protected]
skype: fareva_mlima
Postado : 27/11/2014 11:46 am