2
respostas

Validação nao funciona quando o usuário copia o valor

A validação não está funcionando quando eu colo o valor. Existe uma forma de evitar isso?

2 respostas

Bom dia Rafael!

Quando você diz, "colo o valor", está querendo dizer que utiliza o comando colar especial, valores?

Em caso afirmativo, não tem como evitar, só vai o valor da célula mesmo. Não vai fórmula, nem formatação, nem formatação condicional, nem validação.

Bom dia Rafael, já pesquisei sobre como fazer exatamente isso e a solução que encontrei foi a seguinte:

Passo 1: proteger as células que passam pela validação.

selecione as células > botão direito > formatar células > proteção > desmarcar opção 'bloqueadas' > ok

Aba revisão > proteger planilhas > manter selecionado apenas as opções selecionar células bloqueadas e selecionar células desbloqueadas > ok

Passo 2: código VBA impedindo a colagem.

Aba desenvolvedor > visual basic > exibir > project explorer > selecionar a aba do excel que deseja impedir a colagem > copiar o código abaixo no quadro branco/editor de texto > fechar.

Código para colagem: Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range

If Not Intersect(Target, Me.Range("G9:C1048576")) Is Nothing Then
    For Each cell In Target
        If Not cell.Validation.Value Then
            MsgBox "Dado inválido: " & cell.Value

            Application.Undo
            Exit Sub
        End If
    Next
End If

End Sub

----- IMPORTANTE: G9:C1048576 aqui você deve trocar pelo intervalo onde sua validação de dados ocorre. O restante pode colar exatamente igual. Você também pode alterar a mensagem "Dados inválido" que aparecerá ao tentar colar.

Se ficar com alguma dúvida, me avise! :D