Erreur définie par l'application ou par l'objet

Bonsoir

J'essaie de faire tourner mon solveur mais jai une erreur sur la phrase en gras, quelqun a une idée?

Public Sub min_vol()

Dim sqrtt As Double

Worksheets("Optimization").Activate

sqrtt = Sqr(52)

Range("L5").Select

ActiveCell.FormulaR1C1 = "=" & sqrtt & " * sqr(mmult(mmult(transpose(R[-2]C[-8]:R[-2+ " & c - 1 & "]C[-8]),Calculs!R[-1]C[-11+" & c + 5 & "]:R[-1+" & c - 1 & "]C[" & -11 + c + c + 4 & "]),R[-2]C[-8]:R[-2+" & c & "-1]C[-8]))"

SolverOk SetCell:="$L$5", MaxMinVal:=2, ValueOf:=0, ByChange:="r[-2]c[-8]:r[-2+c-1]c[-8]"

SolverSolve True

End Sub

merci pour vos réponse

Sab

Hello,

Hypothèse:

Tout est considéré comme du texte, donc lorsque tu écris

R[-2+ " & c - 1 & "]

C'est interprété comme du texte, et pas des nombres.

Conseil:

Ecris une formule fonctionnelle à la main, puis via VBA tapes la commande:

Debug.Print Range("A1").FormulaR1C1 et regarde le résultat.

A partir de ce résultat, compare avec la chaine de caractères que tu génères avec ton code.

Si les chaines sont identiques sauf que dans l'une tu as R[5] et l'autre tu as R[3+3-1] alors c'est que mon hypothèse est la piste à poursuivre.

Piste à poursuivre:

remplacer les

"R[5" & c - 1

etc.... par

"R[" 5 + c - 1 etc...

Bonjour,

Si ta formule est matricielle, il faut utiliser FormulaArray.

Cordialement.

merci pour vos réponses d3d9x et Mferrand mais rien n'y fait j'ai essayé ce que vous m'avez conseillé de faire .. mais sur excel ça fonctionne mais pas sur vba j'ai toujours le meme message..quant à formulaarray vba n'aime pas plus .. est ce que vous pourriez jeter un coup d'oeil à mon dossier ci joint? pour lancer la macro vous devez aller sur la feuille optimization puis cliquer sur le bouton construire le portefeuille puis la macro est lancée ( c de la gestion de portefeulle).. si vous voulez changer d'actifs vous devez sur le userform qui apparait cliquer sur "effacer tout et rentrer un a un les actifs ( par secteur, actif et pondérations!!!!

un grand merci car je bloque dessus je n'arrive pas a avancer

Sab

le souci vient bien de mon "c" qui est lu comme du caractère amis alors comment faire?

Dim c as Integer

ou alors relis ma piste de recherche

sabrina75005 a écrit :

le souci vient bien de mon "c" qui est lu comme du caractère amis alors comment faire?

Où est initialisée cette variable ?

Oui c exactememnt ça c n'était pas compris par vba , voici mon nouveau code qui marche super bien!! merci beaucoupà vous deux

je n'aurais pas trouver seule

Public Sub min_vol()

Dim sqrtt As Double

Worksheets("Optimization").Activate

sqrtt = 52 ^ 0.5

Range("H5").Select

Selection.FormulaArray = "=" & Val(sqrtt) & "* sqrt(mmult(mmult(TRANSPOSE(R[-2]C[-4]:R[" & c - 3 & "]C[-4]),Calculs!R[-1]C[" & c - 2 & "]:R[" & c - 2 & "]C[" & c + c - 3 & "]),R[-2]C[-4]:R[" & c - 3 & "]C[-4]))"

End Sub

Sab

Rechercher des sujets similaires à "erreur definie application objet"