Note: The other languages of the website are Google-translated. Back to English

Como bloquear ou proteger as células após a entrada de dados ou entrada no Excel?

Suponha que você tenha uma planilha e apenas um determinado intervalo de células em branco precise da entrada de dados e, após terminar de inserir os dados, você precisa que as células sejam bloqueadas automaticamente para evitar alterações novamente. Como você pode fazer para alcançá-lo? Este artigo pode te ajudar.

Bloqueie ou proteja as células após a entrada de dados ou entrada com o código VBA


Bloqueie ou proteja as células após a entrada de dados ou entrada com o código VBA

Por exemplo, o determinado intervalo de células em branco é A1: F8. Faça o seguinte para bloquear essas células após a entrada de dados no Excel.

1. Desbloqueie este intervalo primeiro, selecione as células e clique com o botão direito do mouse, depois escolha formatar células no menu do botão direito e no formatar células caixa de diálogo, desmarcando o Trancado caixa sob o proteção guia e, finalmente, clicando no OK botão. Veja a imagem:

2. Clique Comentários > Folha de proteção. E especifique uma senha para proteger esta planilha.

3. Clique com o botão direito na guia da folha e selecione Ver código no menu do botão direito. Em seguida, copie e cole o código VBA abaixo na janela Código. Veja a imagem:

Código VBA: bloqueie ou proteja as células após a entrada ou entrada de dados

Dim mRg As Range
Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
    mStr = mRg.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Intersect(Range("A1:F8"), Target)
    If xRg Is Nothing Then Exit Sub
    Target.Worksheet.Unprotect Password:="123"
    If xRg.Value <> mStr Then xRg.Locked = True
    Target.Worksheet.Protect Password:="123" 
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
     mStr = mRg.Value
End If
End Sub

Nota: No código, “A1: F8” é o intervalo de que você precisa para inserir os dados; e “123” é a senha desta planilha protegida. Altere-os conforme necessário.

4. Pressione outro + Q simultaneamente para fechar o Microsoft Visual Basic para Aplicações janela.

Após terminar de inserir os dados nas células do intervalo A1: F8, elas serão bloqueadas automaticamente. E você obterá uma caixa de diálogo de prompt se tentar alterar qualquer conteúdo de célula deste intervalo. Veja a imagem:


Artigos relacionados:


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (74)
Avaliado 5 fora do 5 · classificações 1
Este comentário foi feito pelo moderador no site
Olá, tenho uma planilha com o intervalo A3:AN219, gostaria de proteger esse intervalo conforme e quando a entrada estiver completa. Por favor me ajude nisso. Eu tentei o código acima, mas não está funcionando para mim
Este comentário foi feito pelo moderador no site
Isso não está funcionando quando reabrir o arquivo do Excel, por favor me ajude
Este comentário foi feito pelo moderador no site
Tente este código em vez disso: Private Sub Worksheet_Change(ByVal Target As Range) Dim MyRange As Range Set MyRange = Intersect(Range("A1:D100"), Target) If Not MyRange Is Nothing Then Sheets("Sheet1").Desproteger senha: ="hello" MyRange.Locked = True Sheets("Sheet1").Proteja a senha:="hello" End If End Sub E lembre-se de alterar o intervalo (A1:D100), a senha (hello) e os nomes/números da planilha (Sheet1) se não corresponder ao acima :)
Este comentário foi feito pelo moderador no site
Obrigado pelo código. Por favor, deixe-me saber como fazer o bloqueio automático das células (semelhantes às listadas por você) SOMENTE DEPOIS de salvar o arquivo
Este comentário foi feito pelo moderador no site
Olá senhor, estou enfrentando um problema com o mesmo código ao usar este código com outro cobe em VBA. Por favor me sugira alguma solução Obrigado e Atenciosamente Gourav
Este comentário foi feito pelo moderador no site
Caro Gourav,
Desculpe não pode resolver este problema.
Este comentário foi feito pelo moderador no site
Eu tentei o código e parecia funcionar um pouco. No entanto, ele me permite excluir a data inserida na célula, mas só me interrompe quando tento inserir outra coisa. Existe uma maneira de evitar que os dados sejam excluídos?
Este comentário foi feito pelo moderador no site
Prezada Stacy,
O mesmo problema não aparece no meu caso. O código impede que os usuários insiram e excluam dados do intervalo especificado. Você forneceria sua versão do Office para testes adicionais?
Este comentário foi feito pelo moderador no site
Para quem pode ter tropeçado aqui desde este comentário. Se você está tendo que desbloquear a planilha TODA VEZ que você preenche uma célula, então você precisa primeiro, - Desbloquear a planilha - Realçar a área da planilha sobre a qual o código se aplica - Clique com o botão direito do mouse e vá para 'formatar células' - Vá para o guia da extrema direita chamada 'Proteção' e DESMARQUE a seção 'Bloqueado' (Mesmo que apareça como um preenchimento sólido em vez de um carrapato) Depois disso, você poderá inserir dados em várias células sem precisar desbloquear todas as vezes. Lembre-se de que se você precisar revisitar células bloqueadas para excluir ou editar informações, talvez seja necessário repetir as etapas acima. Espero que isto ajude.
Este comentário foi feito pelo moderador no site
eu gosto de bloquear apenas as células editadas. depois de inserir quaisquer dados nas células vazias, preciso bloquear a célula editada para ser bloqueada automaticamente, mas não as células vazias.
Este comentário foi feito pelo moderador no site
Prezado Subhash,
Depois de usar o código, apenas as células editadas são bloqueadas no intervalo especificado. E você ainda pode inserir dados nas células vazias no intervalo especificado conforme necessário. Depois de preencher a célula em branco, ela será bloqueada automaticamente.
Este comentário foi feito pelo moderador no site
Não, ele bloqueia todo o intervalo de uma vez após a entrada de dados em uma célula do intervalo
Este comentário foi feito pelo moderador no site
Caro pradip,
Qual versão do Office você usa?
Este comentário foi feito pelo moderador no site
Obrigado pela codificação, mas tenho um problema para colocar 2 codificação em 1 folha, por favor me ajude.
Este comentário foi feito pelo moderador no site
Querida Feira,
Desculpe não pode resolver este problema.
Este comentário foi feito pelo moderador no site
Oi,
Senhor, eu quero bloquear após uma única entrada de dados!
Como se eu estivesse seguindo um cliente e escrevesse o status, mais nenhum funcionário poderia editar ou modificar isso!
Este comentário foi feito pelo moderador no site
Bom dia,
Método neste post também pode ajudá-lo a resolver esse problema.
Este comentário foi feito pelo moderador no site
as células nem são editáveis ​​... o que deu errado não entendo pls ajuda
Este comentário foi feito pelo moderador no site
Bom dia,
Primeiro, você precisa definir as células especificadas como Desbloqueadas para edição e, em seguida, proteger a planilha. E, finalmente, aplique o script VBA.
Este comentário foi feito pelo moderador no site
é tem que codificar?
Este comentário foi feito pelo moderador no site
Hi


eu quero que ele bloqueie o intervalo após a entrada em uma célula no intervalo, por favor, você pode aconselhar como eu preciso editar isso para fazer isso, obrigado
Este comentário foi feito pelo moderador no site
Hi
editando o código existe uma maneira de fazer com que ele bloqueie todas as células no intervalo depois que os dados forem inseridos em uma célula dentro desse intervalo? então eles só podem inserir dados em uma célula dentro do intervalo não múltiplo.


obrigado
Este comentário foi feito pelo moderador no site
Prezado Jackie,
O código VBA abaixo pode ajudá-lo a resolver o problema.

Private Sub Worksheet_Change (ByVal Target As Range)
Dim xRg como intervalo
Dim xSRg como intervalo
On Error Resume Next
Definir xSRg = Range("A1:F8")
Definir xRg = Intersect(xSRg, Alvo)
Se xRg não for nada, saia do sub
Target.Worksheet.Unprotect Password:="123"
xSRg.Locked = Verdadeiro
Target.Worksheet.Protect Password:="123"
End Sub
Este comentário foi feito pelo moderador no site
Olá,
Existe uma maneira de bloquear apenas células em vez de toda a planilha? Por exemplo, se um usuário digitar "Sim" em A2, o A2 será bloqueado imediatamente para não permitir nenhuma alteração. Eu ainda gostaria que outros ainda pudessem editar qualquer outra célula também. Obrigado!
Este comentário foi feito pelo moderador no site
Olá Smith,
O código VBA abaixo pode ajudá-lo a resolver o problema. Por favor, tente e obrigado pelo seu comentário.

Private Sub Worksheet_Change (ByVal Target As Range)
On Error Resume Next
Target.Worksheet.Unprotect Password:="123"
Target.Locked = True
Target.Worksheet.Protect Password:="123"
End Sub
Este comentário foi feito pelo moderador no site
Bom dia,

Existe alguma maneira de impedir que um usuário clique com o botão direito do mouse em "ver código" e veja a senha do administrador?
Este comentário foi feito pelo moderador no site
Não importa, eu entendi.
Este comentário foi feito pelo moderador no site
Como? eu não entendi...
Este comentário foi feito pelo moderador no site
ola preciso de ajuda


estou realmente fazendo uma lista de trabalho para um grande grupo de pessoas, e esta folha é acessível a todos para que eles possam digitar seus pedidos de dias de folga / férias anuais etc. dia (máximo 5 em licença) e após 5 solicitações de licença serem digitadas para o dia, nenhuma outra entidade pode preencher mais solicitações para essa data específica.


existe algum código/função que calcule o número de requisições específicas por dia então quando a cota for atingida, as outras células são bloqueadas para que as requisições não ultrapassem? desde já, obrigado
Este comentário foi feito pelo moderador no site
Dia bom,
Bem-vindo a postar qualquer pergunta em nosso fórum: https://www.extendoffice.com/forum.html.
Você obterá mais suportes do Excel de nossos profissionais ou outros fãs do Excel.
Este comentário foi feito pelo moderador no site
Oi - este post foi muito útil e funciona perfeitamente. No entanto, meus filtros param de funcionar quando as células são bloqueadas. Existe uma maneira de contornar isso? Obrigado!
Este comentário foi feito pelo moderador no site
Oi Kim,
Desculpe não pode ajudar com isso. O recurso de filtro está desabilitado em uma planilha protegida por padrão.
Este comentário foi feito pelo moderador no site
Obrigado cara, isso salvou meu trabalho :D
Este comentário foi feito pelo moderador no site
quando saio do arquivo atualmente em funcionamento e o abro novamente, descobri que a nova célula não foi bloqueada após a entrada de dados, apenas a célula de bloqueio anterior encontrou o bloqueio. qualquer solução
Este comentário foi feito pelo moderador no site
Oi Nazmul
Você precisa salvar a pasta de trabalho como uma pasta de trabalho habilitada para macro do Excel antes de fechá-la.
Não há comentários postados aqui ainda
carregar mais
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos