Como proteger células baseadas em data no Excel?
Normalmente, podemos proteger a planilha para evitar que outras pessoas editem ou modifiquem os valores das células, mas, às vezes, você precisa proteger as células com base na data. Por exemplo, eu quero proteger outras células, mas apenas permitir que os valores das células da data de hoje sejam modificados como mostrado na captura de tela a seguir, este artigo falará sobre como proteger as células com base na data.
Proteja todas as linhas, exceto a linha da data de hoje com o código VBA
Proteja todas as linhas em que a data passou com o código VBA
Proteja todas as linhas, exceto a linha da data de hoje com o código VBA
Permita apenas que a linha que é igual à data de hoje seja modificada, o código a seguir pode ajudá-lo, faça o seguinte:
1. Clique com o botão direito na guia da planilha em que deseja proteger as células com base na data e escolha Ver código a partir do menu de contexto, no pop-out Microsoft Visual Basic para Aplicações janela, copie e cole o seguinte código no módulo em branco:
Código VBA: protege todas as linhas, exceto a linha da data de hoje:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20161025
If Range("E" & Selection.Row).Value <> Date Then
ActiveSheet.Protect Password:="111111"
MsgBox "Only today's date row can be edited!", vbInformation, "Kutools for Excel"
ElseIf Range("E" & Selection.Row).Value = Date Then
ActiveSheet.Unprotect Password:="111111"
ActiveSheet.EnableSelection = xlNoRestrictions
End If
End Sub
Note: No código acima, a letra E é o cabeçalho da coluna onde a data está localizada, “111111”É a senha para proteger esta folha. Você pode alterá-los conforme sua necessidade.
2. Em seguida, salve e feche esta janela de código.
(1.) Se você clicar em outras células além da linha da data de hoje, uma caixa de prompt aparecerá para lembrá-lo de que a célula não pode ser editada, veja a captura de tela:
(2.) Se você clicar e editar a linha igual à data de hoje, ela será modificada com sucesso, veja a captura de tela:
Proteja todas as linhas em que a data passou com o código VBA
Se você precisar proteger todas as linhas em que a data já passou, permita que apenas as linhas da data atual e futura sejam modificadas, aplique o seguinte código VBA:
1. Clique com o botão direito na guia da planilha em que deseja proteger as células com base na data e escolha Ver código a partir do menu de contexto, no pop-out Microsoft Visual Basic para Aplicações janela, copie e cole o seguinte código no módulo em branco:
Código VBA: proteger todas as linhas, a data passou:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updateby Extendoffice 20161025
Dim xRow As Long
xRow = 2
ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
ThisWorkbook.ActiveSheet.Cells.Locked = False
Do Until IsEmpty(Cells(xRow, 5))
If Cells(xRow, 5) < Date Then
Rows(xRow).Locked = True
End If
xRow = xRow + 1
Loop
ThisWorkbook.ActiveSheet.Protect Password:="111111"
End Sub
Note: No código acima, o número 5 é o número da coluna onde a data está localizada, “111111”É a senha para proteger esta folha. Você pode alterá-los conforme sua necessidade.
3. Em seguida, salve e feche esta janela de código.
(1.) Se você clicar nas células em que a data passou, uma caixa de aviso aparecerá para lembrá-lo de que a célula não pode ser editada, veja a captura de tela:
(2.) Se você clicar na célula de linhas para tentar alterar os valores na data de hoje ou na data futura, ela será modificada com sucesso, veja a captura de tela:
Melhores ferramentas de produtividade de escritório
Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
Office Tab 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!