Michael tiene un control de formulario (una casilla de verificación) vinculado a la celda A1. Puede colocar una fórmula en la celda A1 que se resuelve en Verdadero o Falso, y la casilla de verificación refleja ese resultado. Sin embargo, si alguien hace clic en la casilla de verificación para cambiarla, la fórmula de la celda A1 se sobrescribe con un verdadero o falso explícito. Michael necesita la fórmula en la celda A1 para controlar la casilla de verificación, pero también necesita que el usuario pueda alternar la casilla de verificación sin sobrescribir la fórmula. Se pregunta si esto es posible.

En resumen, esto no es posible. Microsoft pretendía que las casillas de verificación controlaran el valor en una celda, y luego podría hacer referencia a esa celda en otras fórmulas. Nunca pretendieron que las celdas vinculadas contuvieran fórmulas.

Una cosa que puede intentar, si lo desea, es crear una macro que supervise una celda y, si cambia, actualice una celda diferente. Por ejemplo, puede vincular su casilla de verificación a una celda diferente (como la celda B1), de modo que la fórmula de la celda A1 no se vea afectada cuando se use la casilla de verificación. Luego, crea una macro de controlador de eventos que examina lo que está en la celda A1, y si cambia, la macro modifica lo que está en la celda B1. Esta modificación en la celda B1 activará el cambio en la casilla de verificación.

Otro enfoque basado en macros es utilizar una macro para escribir una fórmula en la celda A1. Este es un ejemplo simple de tal macro:

Sub CheckBoxState()

Range("A1").Formula = "=IF(" & Range("A1") & _       ",""CHECKED"",""NOT CHECKED"")"

End Sub

Si asigna esta macro al control de la casilla de verificación, cuando una persona hace clic en la casilla de verificación, suceden dos cosas. Primero, el estado de la casilla de verificación se escribe en la celda A1, sobrescribiendo lo que esté allí. En segundo lugar, se ejecuta la macro, escribiendo la fórmula nuevamente en la celda A1. Tenga en cuenta que la fórmula (como se define en esta macro) tiene en cuenta el valor que se acaba de almacenar en la celda A1. Por lo tanto, si el control de la casilla de verificación escribe Verdadero en la celda A1, la macro introduce lo siguiente en la celda:

=IF(TRUE,"CHECKED","NOT CHECKED")

Haga clic en la casilla de verificación nuevamente, el valor introducido en la celda cambia a Falso y la fórmula que se coloca en la celda cambia. Por supuesto, necesitaría modificar la macro para que la fórmula que fuerza en la celda A1 refleje la fórmula que realmente desea allí.

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

Este consejo (113) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.