Excel: Cómo proteger una celda con un bloqueo automático

Si tenés una hoja Excel donde otros deben escribir ciertos datos en una columna, pero no querés que tengan acceso a modificar el archivo completo, fijate aquí cómo lograr un bloqueo.
Lunes, 2 de Enero de 2017

Este problema se puede resolver con una macro automática que bloquee las celdas de una columna a medida que se van escribiendo datos en ellas. La cuestión implica varias opciones interesantes.

En primer lugar, una celda queda bloqueada (y, por lo tanto, inmodificable) cuando se cumplen dos condiciones:

* La celda tiene activada la opción [Bloqueada] dentro de su formato de celda.

* La hoja tiene activada la protección global.

Estas dos opciones deben manejarse a través de una macro automática. Existen macros que se ejecutan automáticamente ante ciertos eventos: se abre un archivo, se imprime, se selecciona una hoja o, en este caso, se modifica una celda. Esta macro se escribe en una ventana de código asociada a la hoja donde se quiere aplicar el bloqueo:

1. Dentro de la ficha [Programador] hacemos clic en el botón [Visual Basic]. Esto abre el editor de macros.

2. Una vez dentro del editor tomamos las opciones [Ver/Explorador de proyectos].

3. Dentro del explorador, seleccionamos la hoja donde se aplica el bloqueo.

4. Tomamos las opciones [Ver/Código].

Esto abre la ventana de código asociada a la hoja. En la parte superior aparecen dos listas desplegables. En ellas seleccionamos el evento que desencadenará la ejecución de la macro:

1. En la lista de la derecha seleccionamos [Worksheet].

2. En la lista de la izquierda seleccionamos [Change].

Con esto obtenemos la primera y la última línea de la macro que completamos con las siguientes instrucciones:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 Then

ActiveSheet.Unprotect

Target.Locked = True

ActiveSheet.Protect

End If

End Sub

En esta macro, la variable Target identifica la celda cuya modificación desencadena la ejecución. La macro primero se pregunta si la celda modificada pertenece a la primera columna (Target.Column = 1). En ese caso desactiva la protección global, bloquea la celda y reactiva la protección.

Toda hoja de Excel tiene, por defecto, todas sus celdas bloqueadas. De modo que, antes de empezar a usar esta planilla, debemos desbloquear toda la hoja:

1. Hacemos clic en la esquina superior izquierda de la hoja. Con esto se seleccionan todas las celdas.

2. Oprimimos la combinación <Control+1> (el número uno). Aparece el cuadro de opciones de formato de la celda.

3. Seleccionamos la ficha [Proteger].

4. Desmarcamos la opción [Bloqueada].

5. Hacemos clic en [Aceptar].

Esto deja desbloqueadas (y, por lo tanto, modificables) todas las celdas. A medida que vayamos cargando datos en la columna [A], se irán bloqueando esas celdas y ya no podrán ser modificadas.

En el ejemplo supusimos que el bloqueo debe aplicarse a la columna [A]. Podemos usar las propiedades Target.Column y Target.Row para limitar el bloqueo a otros rangos. Por ejemplo, para bloquear las celdas del rango [A5:F20] la condición sería:

If Target.Column < 7 And Target.Row > 4 And Target.Row < 21

La condición Target.Column < 7 limita la protección a las primeras seis columnas mientras que las otras dos condiciones las limitan a las filas 5 a 20.

Últimos lanzamientos Ver más