¿Es posible formatear condicionalmente una celda si la celda contiene fórmula (para alertarme a mí mismo y a otros usuarios al actualizar la celda)?
¿Es posible formatear condicionalmente una celda si la celda contiene fórmula (para alertarme a mí mismo y a otros usuarios al actualizar la celda)?
Respuestas:
Puede usar el formato condicional para hacer esto usando XLM y nombres de rango
Tengo un artículo más largo sobre el uso de XLM con nombres de rango y formato condicional para formatear automáticamente hojas de cálculo de acuerdo con el contenido de la celda
xlm
sin ninguna advertencia macro, MSFT cambió el enfoque de seguridad.
Sobre la base de la respuesta de brettdj, porque el artículo vinculado me pareció bastante difícil de seguir:
=ISFORMULA(INDIRECT("rc",FALSE))
$1:$1048576
como el rango al que se aplicará. De lo contrario, puede ingresar cualquier rango.La fórmula INDIRECT("rc",FALSE)
devuelve la referencia de la celda actual. Si alguna vez uso esto en una hoja, creo un nombre definido llamado algo así ThisCell
y lo uso en la fórmula, en caso de que vuelva años después y piense "¿para qué demonios es esto?".
INDIRECT("rc",FALSE)
, utilice referencias relativas con la celda superior izquierda en su rango de formato condicional "Se aplica a". Por ejemplo, si su rango "Se aplica a" es =$A$3:$F$300
, entonces use =ISFORMULA(A3)
. Esto funciona porque el formato condicional admite referencias relativas, vea esto
Puedes probar estos:
Cree una función personalizada con el siguiente código:
Function IsFormula(ByVal Ref As Range) As Variant
If Ref.Cells.Count > 1 Then
IsFormula = CVErr(xlErrNA)
Else
IsFormula = Ref.HasFormula
End If
End Function
Ejemplo:
Para verificar si alguna celda en la columna A tiene alguna fórmula:
=IsFormula(A1)
Hay una manera muy simple de hacer esto, probada en Excel 2016.
Resalte su rango al que desea que se aplique, digamos desde A3:W20
. Entra en formato condicional y selecciona NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT
.
Ponga =isformula(A3)
y elija el formato que desea aplicar.
A3
obviamente es una referencia a la primera celda de su rango, pero este formato se aplica a todos. El resultado es que dentro de su rango, cualquier celda que sea una fórmula tiene un formato condicional.
Los sitios de ayuda más nuevos recomiendan una función definida por el usuario:
Function IsFormula(cell) as boolean
IsFormula = cell.HasFormula
End Function
Luego usa esa función como tu condición
Y, de hecho, Excel 2013 y versiones posteriores tienen IsFormula
como función estándar.
También puede usar el formato condicional:
=HasNoFormula
Probado con Excel 2010.