
Para que una celda no pueda ser modificada se deben dar dos condiciones:
- La celda debe estar bloqueada.
- La hoja debe estar protegida.
Lo primero se hace con las opciones [Formato/Celdas]. En la ficha [Proteger], debe estar marcada la opción [Bloqueada]. Lo segundo se logra con las opciones [Herramientas/Proteger/Proteger hoja].
Supongamos la situación inicial de la hoja, sin datos. Para poder escribir un nuevo dato, la celda debe estar desbloqueada. Una vez que el dato ha sido escrito, se debe bloquear esa celda y activar la protección de la hoja. Esto impide que el dato sea modificado.
Para poder escribir un segundo dato, hay que desactivar la protección de la hoja, bloquear la celda donde se escribió el segundo dato y luego volver a activar la protección de la hoja. La protección se desactiva momentáneamente para poder modificar el estado de bloqueo de la celda.
Todo lo anterior debe hacerse automáticamente cada vez que se escribe un nuevo dato. Esto puede lograrse con la siguiente macro:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
ActiveSheet.Unprotect
Target.Locked = True
ActiveSheet.Protect
End If
End Sub
Por tener el nombre especial Worksheet_Change, esta macro se ejecuta automáticamente al cambiar cualquier dato de la hoja. La macro primero verifica que el dato se esté escribiendo en la columna [A], que suponemos que es la que recibe los datos. Luego desactiva la protección global, bloquea la celda y vuelve a activar la protección.
Esta macro debe escribirse en la ventana de código de la hoja:
1. Tomamos las opciones [Herramientas/Macro/Editor de Visual Basic].
2. Una vez dentro del editor, tomamos las opciones [Ver/Explorador de proyectos].
3. Sobre el explorador (que se parece al explorador de archivos de Windows) seleccionamos la rama correspondiente a la hoja en la que escribimos los datos.
4. Tomamos las opciones [Ver/Código].
Esto abre una ventana donde escribimos la macro anterior.
Antes de ejecutar la macro, tenemos que desbloquear todas las celdas donde se escribirán los datos. Si, por ejemplo, se escriben en la columna [A]:
1. Seleccionamos la columna [A].
2. Tomamos las opciones [Formato/Celdas].
3. Seleccionamos la ficha [Proteger].
4. Desmarcamos la opción [Bloqueada].
5. Hacemos clic en [Aceptar].
A partir de ahora, podemos escribir datos en la columna [A]. Cada nuevo dato será inmodificable: cuando queramos modificar o borrar algún dato, aparecerá el mensaje que avisa que no podemos hacerlo.

Para impedir que una celda sea modificada, esta debe estar bloqueada y la protección global de la hoja, activada.

Estamos tratando de modificar un dato. Como la celda del dato está bloqueada y la protección de la hoja está activada, no podemos hacer la modificación.