Erreur d'exécution 1004 (Macro)

Bonjour,

Je dois faire 1000 régressions multiples pour un problème de finance.

J'ai installé la fonction OLSreg (Régression multiple avec valeurs manquantes).

J'aimerais créer une macro qui fait la boucle suivante:

Pour chaque i, faire la régression multiple, prendre 2 résultats du tableau (output) et les coller en un endroit donné. Ensuite, passer au i suivant, et ainsi de suite...

Le code ne marche pas dès que j'insère "i" dans la formule OLSReg (Sans le i elle fonctionne mais me colle le même résultat, évidemment...).

MON CODE

Sub The OLSreg()

For i=1 to 1000

Range("D113:G120").Select

Selection.FormulaArray=_

"=OLSReg(R1C1005:R101C1006,R[-112]C[-3+i]:R[-12]C[-3+i],0,2)"

Range("E118:E119).Select

Selection.Copy

Cells(104,2+i).Select

Selection.PasteSpecial Paste bla bla

Next i

End Sub

MESSAGE D'ERREUR: Erreur d'exécution '1004': Impossible de définir la propriété FormulaArray de la classe Range.

Voilà. Le problème viens de OLSReg. Si je met C[-2] au lieu de C[-3+1], ça fonctionne mais du coup je n'ai pas de boucle et il me colle la 1ère régression partout. Avez-vous une solution ?

PS: Je suis étudiant en finance, donc essayez d'expliquer simplement (pas expert en VBA)... ^^

Merci d'avance, j'espère que quelqu'un pourra m'aider ! (je dois rendre le rapport ce soir minuit xD)

Bonsoir,

Peut-être ainsi :

Sub The_OLSreg()
Dim I As Integer
For I = 1 To 1000
    Range("D113:G120").FormulaArray = _
            "=OLSReg(R1C1005:R101C1006,R[-112]C[-3+" & I & "]:R[-12]C[-3+" & I & "],0,2)"
    Range("E118:E119").Copy
    Cells(104, 2 + I).PasteSpecial 'blablabla
Next I
End Sub

Bon courage

Non, ça ne marche pas...

Ca m'affiche toujours la même erreur ! ;(

Re-,

Euh, tu es sûr qu'il faut changer la colonne?

Ce ne serait pas plutôt la ligne?

Et mettre 1000 en variable....?

quelle valeur veux-tu changer, exactement?

Bon courage

Non, c'est bien les colonnes qu'il faut changer...

On régresse la 1ère colonne sur les 2 colonnes 1005 et 1006.

Ensuite, on régresse la 2ème colonne sur les 2 colonnes 1005 et 1006.

Et ainsi de suite jusqu'à régresser la 1000ème colonne sur les 2 colonnes 1005 et 1006 (qui sont donc fixes).

Pour chacune de ces colonnes, on obtient un tableau avec les résultats de la régression.

Je colle 2 résultats qui m'intéressent en bas de la colonne concernée, et ainsi de suite.

Si tu n'as jamais fait de régression, ça peut paraître un peu bizarre peut-être...

Re-,

Si tu n'as jamais fait de régression, ça peut paraître un peu bizarre peut-être...

Effectivement, je n'en ai jamais fait....

Euh, sur la feuille Excel, quelle est la formule?

Lorsque tu déroules le code qui fonctionne (avec le C[-2]), qu'est-ce qui est inscrit dans la cellule?

@ te relire

Quand je fais avec [-2], ça me donne:

{=OLSReg($ALQ$1:$ALR$101;B1:B101;0;2)}

Et dans la case de la réponse, c'est simplement numérique (normal, copier-coller).

Il me copie-colle le même résultat (qui est -9.17 et 16.36) partout...

Et ce que j'aimerais, c'est que maintenant, Excel me fasse la même chose mais avec C1:C101, puis D1:D101, et ainsi de suite... (En fait, mes données complètes sont une matrice 100x1'000). Je dois avoir 1'000 résultats différents !

Je ne sais pas si ça t'éclaire d'avantage comme ça... ^^

Re-,

Ce code fonctionne.....

    Range("D113:G120").FormulaArray = _
            "=OLSReg(R1C1005:R101C1006,R[-112]C[" & I - 3 & "]:R[-12]C[" & I - 3 & "],0,2)"

Maintenant.....

Bon courage

Celui-ci fonctionne parfaitement !

Merci infiniment et une toute bonne journée !

Re-,

Je ne sais pas si ça t'éclaire d'avantage comme ça... ^^

Ben, si, tu le vois....

Bon courage, pour la suite

Rechercher des sujets similaires à "erreur execution 1004 macro"