¿Cómo proteger celdas basadas en la fecha en Excel?
Normalmente, podemos proteger la hoja de cálculo para evitar que otros editen o modifiquen los valores de las celdas, pero a veces necesitas proteger las celdas basándote en la fecha. Por ejemplo, quiero proteger otras celdas pero solo permitir que se modifiquen los valores de las celdas con la fecha de hoy, como se muestra en la siguiente captura de pantalla. Este artículo hablará sobre cómo proteger celdas basadas en la fecha.
Proteger todas las filas excepto la fila de la fecha de hoy con código VBA
Proteger todas las filas cuya fecha ya ha pasado con código VBA
Proteger todas las filas excepto la fila de la fecha de hoy con código VBA
Solo permite modificar la fila que sea igual a la fecha de hoy; el siguiente código puede ayudarte, por favor haz lo siguiente:
1. Haz clic derecho en la pestaña de la hoja donde deseas proteger las celdas basadas en la fecha y luego selecciona Ver código desde el menú contextual. En la ventana emergente de Microsoft Visual Basic for Applications, copia y pega el siguiente código en el Módulo en blanco:
Código VBA: Proteger todas las filas excepto la fila de la fecha de hoy:
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
Nota: En el código anterior, la letra E es el encabezado de la columna donde están las fechas, “111111” es la contraseña para proteger esta hoja. Puedes cambiarlos según tus necesidades.
2. Luego guarda y cierra esta ventana de código.
(1.) Si haces clic en otras celdas fuera de la fila de la fecha de hoy, aparecerá un cuadro de diálogo indicando que la celda no se puede editar, ver captura de pantalla:
(2.) Si haces clic y editas la fila igual a la fecha de hoy, se modificará correctamente, ver captura de pantalla:

Descubre la Magia de Excel con Kutools AI
- Ejecución Inteligente: Realiza operaciones en celdas, analiza datos y crea gráficos, todo impulsado por comandos simples.
- Fórmulas Personalizadas: Genera fórmulas adaptadas para optimizar tus flujos de trabajo.
- Codificación VBA: Escribe e implementa código VBA sin esfuerzo.
- Interpretación de Fórmulas: Comprende fórmulas complejas con facilidad.
- Traducción de Texto: Supera las barreras del idioma dentro de tus hojas de cálculo.
Proteger todas las filas cuya fecha ya ha pasado con código VBA
Si necesitas proteger todas las filas cuya fecha ya ha pasado, y solo permitir que se modifiquen las filas de la fecha de hoy y futuras, aplica el siguiente código VBA:
1. Haz clic derecho en la pestaña de la hoja donde deseas proteger las celdas basadas en la fecha y luego selecciona Ver código desde el menú contextual. En la ventana emergente de Microsoft Visual Basic for Applications, copia y pega el siguiente código en el Módulo en blanco:
Código VBA: Proteger todas las filas cuya fecha ya ha pasado:
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
Nota: En el código anterior, el número 5 es el número de columna donde están las fechas, “111111” es la contraseña para proteger esta hoja. Puedes cambiarlos según tus necesidades.
3. Luego guarda y cierra esta ventana de código.
(1.) Si haces clic en las celdas cuya fecha ya ha pasado, aparecerá un cuadro de diálogo indicando que la celda no se puede editar, ver captura de pantalla:
(2.) Si haces clic en la celda de las filas para intentar cambiar los valores en la fecha de hoy o en una fecha futura, se modificará correctamente, ver captura de pantalla:
Las mejores herramientas de productividad para Office
Impulsa al máximo tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para potenciar la productividad y ahorrar tiempo.Haz clic aquí para obtener la función que más necesitas...
Office Tab aporta una interfaz de pestañas a Office y hace tu trabajo mucho más sencillo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en vez de en nuevas ventanas.
- ¡Aumenta tu productividad hasta un50% y reduce cientos de clics de ratón cada día!