Caro Betoniera,
ho provato a scrivere una funzione che estrae le operazioni eventualmente presenti in una stringa di testo e restituisce il risultato.
Per esempio, se nella cella A1 scrivi il testo: "area = 6.14*2.15^2" la funzione =EstraiFormula(A1) ti restituisce il risultato delle operazioni contenute nella stringa, cioè 28.38215
Se invece scrivi solo del testo la funzione ti restituisce solo il testo, infine se scrivi una formula di tipo simbolica contenente cioe delle variabili, la funzione continua a restituirti il risultato delle operazioni se nel foglio hai atribuito i nomi presenti nell'espressione a delle celle.
esempio: se in A1 scrivi, la stringa: area=3.14*raggio^2 e la cella A2 (a cui hai dato il nome raggio) contiene il valore 2, la funzione ti restituisce il risultato dell'operazione 3.14*2^2 cioè 12.56.
ecco la prima stesura della mia funzione
Function EstraiFormula(Cella As Range) As Variant
Dim formula0 As String
Dim posUguale As Long
Dim lunghezza As Long
If VarType(Cella) = 8 Then
If Not Cella.HasFormula Then
formula0 = Cella.Value
posUguale = InStr(formula0, "=")
If posUguale > 0 Then
If posUguale = Len(formula0) Then
EstraiFormula = Cella.Text
Else
lunghezza = Len(formula0) - posUguale + 1
EstraiFormula = Evaluate(Right(formula0, lunghezza))
End If
Else
EstraiFormula = Cella.Text
End If
Else
EstraiFormula = Cella.Text
End If
End If
End Function
ovviamente questa è sia estendibile sia migliorabile sia cestinabile.
ciao