Para uma solução LO Calc, vejo duas maneiras:
-
coloque a função que produz o resultado para
A
em uma folha separada protegida . Dessa forma, é muito improvável que o usuário tente editar acidentalmente a célula que contém sua função. Tem algumas outras vantagens:- não há necessidade de codificação de macro,
- capacidade de copiar a planilha "function" em outros arquivos
ods
, - simples de editar.
-
defina a função como função definida pelo usuário dentro de uma macro básica. O Star Basic usado pelo LO Calc não é o mesmo que o VBA, mas é bastante semelhante, pois ambos são dialetos básicos. Vantagens:
- poder total da linguagem starbasic,
- exporte-a como "biblioteca do sistema"
- ou incorporar em
ods
templates.
Criar uma função definida pelo usuário no Calc é muito fácil. Supondo que você tenha que calcular o valor A
pela multiplicação de três valores diferentes, basta criar uma macro como esta:
Function A(b, c, d)
A = b*c*d
End Function
Agora, você pode usar essa função dentro da expressão If
:
If(A(4, 5, 6) > B, A(4, 5, 6), C)
Naturalmente, esse exemplo simples não faz muito sentido, mas é mais útil se o seu código para calcular A()
ficar mais complexo. Se os três valores para multiplicar forem fixos, você pode reduzir o código para
Function A()
A = 4*5*6
End Function
e chamá-lo simpy usando
If(A() > B, A(), C)
Sei que esses exemplos são simples demais para ilustrar a solução. Basta pensar em adicionar definições de constantes ou criar uma biblioteca de funções completa dentro de uma macro, talvez com funções auxiliares "privadas" invisíveis para o usuário que apenas edita a folha ods
.