Vilas sabe que puede proteger una hoja de trabajo para que los usuarios no puedan eliminar celdas. Sin embargo, tiene la necesidad de evitar la eliminación de celdas sin utilizar la protección de la hoja de trabajo. (Vilas no se refiere a la eliminación del contenido de las celdas, sino a la eliminación real de las celdas para que las celdas circundantes deban moverse hacia la izquierda o hacia arriba). Se pregunta si hay una manera de evitar que un usuario elimine celdas, sin proteger la hoja de trabajo.

No hay una forma directa de hacer esto en Excel. Sería bueno si Excel proporcionara una forma de crear un controlador de eventos al que se llamaba cada vez que se eliminaba una celda, pero no es así. (El evento Worksheet_Change aparentemente se activa cada vez que se cambia el contenido de una celda, pero no cuando una celda se elimina por completo). Debido a esto, usar una macro para proteger sus celdas de ser eliminadas no es el camino a seguir.

La mejor solución que hemos podido encontrar implica aprovechar una peculiaridad en la forma en que Excel maneja las fórmulas de matriz. A modo de ejemplo, supongamos que tiene datos en el rango A1: L37 y no desea que se elimine ninguna celda dentro de este rango. Siga estos pasos generales:

  1. Seleccione el rango de celdas justo a la derecha de su bloque que desea proteger. En este caso, seleccione las celdas M1: M37.

  2. Escribe = «» y presiona Shift + Ctrl + Enter. Ahora ha creado una fórmula de matriz sin hacer nada que toma todo el rango de M1: M37.

  3. Seleccione el rango de celdas justo debajo del bloque de celdas que desea proteger. En este caso, seleccione las celdas A38: L38.

  4. Escribe = «» y presiona Shift + Ctrl + Enter. Ahora ha creado una fórmula de matriz de no hacer nada que toma todo el rango de A38: L38.

En este punto, no puede eliminar ninguna celda dentro del bloque de datos (A1: L37), ni puede eliminar ninguna fila de la 1 a la 37 ni ninguna columna de la A a la L.

Siempre que lo intenta, Excel muestra un mensaje que dice «No puede cambiar parte de una matriz». La única forma de eliminar celdas, filas o columnas dentro del bloque de datos es deshacerse primero de las fórmulas de matriz que se verían afectadas. En otras palabras, primero deberá eliminar la columna M o la fila 38.

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (10255) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.

Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Stopping_the_Deletion_of_Cells [Detener la eliminación de células].