Ir ao conteúdo

Excel Bloqueio de células específicas através do VBA.


Ir à solução Resolvido por joão marcos monteiro,

Posts recomendados

Postado

Quero bloquear a função copiar e colar apenas de algumas células específicas, através do VBA.

Se alguém puder me ajudar serei grato. OBS: Não posso bloquear a pasta de trabalho inteira, porque tenho muitas macros ativas que serão destruídas com isso.

Postado

@joão marcos monteiro O melhor seria bloquear a planilha e via macro desbloquear a planilha quando necessário (ou deixar apenas essas células específicas bloqueadas em Formatar Células > Proteção). Mas se isso não é possível você pode tentar no evento SelectionChange desabilitar o Ctrl+C e Ctrl+V (ou atribuir CutCopyMode = False) com OnKey quando selecionar a célula. E também terá que verificar o recurso de copiar com o botão direito do mouse.

Postado

@Midori  A planílha está toda protegida, e nas macros ja estão ativos os eventos de desproteger - executar a macro - proteger novamente. Más preciso desabilitar o copiar e colar do campo de pesquisa de cadastros onde contém uma validação por cpf, porque mesmo com a validação que esta nela, se o usuário copiar uma célula de outra validação dentro do minha planílha, ta levando a formatação junto, e desconfigurando a validação, quero evitar isso. Obrigado pela resposta.

Postado
5 horas atrás, joão marcos monteiro disse:

...copiar e colar apenas de algumas células específicas...

você quer bloquear a cópia de (origem) um intervalo específico ou a colagem para (destino) um intervalo específico?

O primeiro é bem mais complicado. Se for o segundo, ou seja se for só pra evitar que as células destino fiquem sujas com formatação condicional indesejável, você poderia testar o seguinte no módulo de eventos da planilha, supondo que você queira evitar sujar o intervalo, digamos, A1:B3:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Selection, [A1:B3]) Is Nothing Then
    Application.CutCopyMode = False
  End If
End Sub

 

 

Postado

@Edson Luiz Branco Essas linhas de códigos funcionaram muito bem, pra impedir qualquer tipo de cópia e colagem, más tenho uma macro de inclusão de cadastro, que ao ser executada, copia os valores e joga pra tabela, então usando esse código seu já impede minha macro de cumprir sua funcionalidade. Acho que  uma linha de código que permitisse copiar e colar apenas valores sem formatação ja me ajudaria perfeitamente. Obrigado.

Postado
29 minutos atrás, joão marcos monteiro disse:

...tenho uma macro de inclusão de cadastro, que ao ser executada, copia os valores e joga pra tabela

Talvez se você editasse essa sua macro de inclusão para, ao invés de usar copiar/colar, trabalhar com os objetos ranges internamente... geralmente fica até mais rápido e eficiente. De qualquer forma, o ideal seria analisar seu arquivo pra propor uma solução mais assertiva.

34 minutos atrás, joão marcos monteiro disse:

Acho que  uma linha de código que permitisse copiar e colar apenas valores sem formatação ja me ajudaria perfeitamente.

Para essa finalidade existe o método PasteSpecial com o argumento xlPasteValues.

Outra alternativa seria monitorar a alteração em seu range destino, remover todas as FC's indesejadas que foram recém coladas e restaurar a FC padrão do intervalo.

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!