Staple1600
XLDnaute Barbatruc
Bonjour à tous
Je n'arrive à trouver la solution au problème suivant:
Comment évaluer une chaine de caractères comme une formule?
Pourquoi le test 3 renvoie 0 alors que le test 2 fait bien la somme
Et comment faire pour le test 4,5 ?
Merci à ceux qui pourront éclairer ma lanterne.
Je n'arrive à trouver la solution au problème suivant:
Comment évaluer une chaine de caractères comme une formule?
Pourquoi le test 3 renvoie 0 alors que le test 2 fait bien la somme
Et comment faire pour le test 4,5 ?
Code:
Sub test_formula_string()
Dim x1#, x2#, x3#, x4#
Dim t_formu() As Variant
Nombres = "4,8,1,3"
x = Split(Nombres, ",")
x1 = x(0)
x2 = x(1)
x3 = x(2)
x4 = x(3)
zz = Evaluate(x1 + x2 + x3 + x4)
zzz = [x1+x2+x3+x4]
t_formu = Array("x1/(x2/x3+x4)", "x1/(x2/x3-x4)", "x1/(x4-x2/x3)")
MsgBox x1 + x2 + x3 + x4 'ok
mess = "test 1 :" & Evaluate(x1 + x2 + x3 + x4) & Chr(13) 'ok
mess = mess & "test 2: " & zz & Chr(13) 'ok
mess = mess & "test 3: " & zzz & Chr(13) 'affiche la chaine
mess = mess & "test 4: " & t_formu(0) & Chr(13) 'affiche la chaine
mess = mess & "test 5: " & ["=t_formu(0)"] & Chr(13) 'pas ok
MsgBox mess
'MsgBox Evaluate(t_formu(0)) 'ne fonctionne pas
'MsgBox [t_formu(0)] ' ne fonctionne pas
MsgBox [=4/(8/1+3)] 'ok
End Sub
Merci à ceux qui pourront éclairer ma lanterne.