Matrice Variance Covariance via VBA

Bonjour à tous,

Je tente de faire une optimisation, et pour cela j'ai besoin d'une matrice variance covariance...

normalement elle se présente ainsi :

http://fr.wikipedia.org/wiki/Covariance

Pas très difficile me diriez vous... la je vous le présente pour 12 valeurs dans le fichier montré dessous... cependant j'en ai près de 450...

et donc je ne maitrise pas assez vba pour pouvoir créer une macro qui serait capable de l'automatiser... je recherche donc de l'aide sur ce forum...

Il y a aura en tète de chaque colonne le nom de la valeur cela commencera à la colonne A... et cela fini à ACH...

et sous elle les différents cours... 1300... Environ… !

De plus je me suis rendu compte que des fois il y avait des trous dans les cours... mais je ne veux pas que VBA le remplace par 0... Est ce possible ?

merci

Pour l'instant mon code ressemble a ca :

Sub varcov()

'

' varcov Macro

Range("A1").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur1)"

Range("A2").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur1,valeur2)"

Range("A3").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur1,valeur3)"

Range("A4").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur1,valeur4)"

Range("A5").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur1,valeur5)"

Range("A6").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur1,valeur6)"

Range("A7").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur1,valeur7)"

Range("A8").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur1,valeur8)"

Range("A9").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur1,valeur9)"

Range("A10").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur1,valeur10)"

Range("A11").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur1,valeur11)"

Range("A12").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur1,valeur12)"

Range("B2").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur2)"

Range("B3").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur2,valeur3)"

Range("B4").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur2,valeur4)"

Range("B5").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur2,valeur5)"

Range("B6").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur2,valeur6)"

Range("B7").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur2,valeur7)"

Range("B8").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur2,valeur8)"

Range("B9").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur2,valeur9)"

Range("B10").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur2,valeur10)"

Range("B11").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur2,valeur11)"

Range("B12").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur2,valeur12)"

Range("C3").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur3)"

Range("C4").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur3,valeur4)"

Range("C5").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur3,valeur5)"

Range("C6").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur3,valeur6)"

Range("C7").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur3,valeur7)"

Range("C8").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur3,valeur8)"

Range("C9").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur3,valeur9)"

Range("C10").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur3,valeur10)"

Range("C11").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur3,valeur11)"

Range("C12").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur3,valeur12)"

Range("D4").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur4)"

Range("D5").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur4,valeur5)"

Range("D6").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur4,valeur6)"

Range("D7").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur4,valeur7)"

Range("D8").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur4,valeur8)"

Range("D9").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur4,valeur9)"

Range("D10").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur4,valeur10)"

Range("D11").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur4,valeur11)"

Range("D12").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur4,valeur12)"

Range("E5").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur5)"

Range("E6").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur5,valeur6)"

Range("E7").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur5,valeur7)"

Range("E8").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur5,valeur8)"

Range("E9").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur5,valeur9)"

Range("E10").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur5,valeur10)"

Range("E11").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur5,valeur11)"

Range("E12").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur5,valeur12)"

Range("F6").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur6)"

Range("F7").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur6,valeur7)"

Range("F8").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur6,valeur8)"

Range("F9").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur6,valeur9)"

Range("F10").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur6,valeur10)"

Range("F11").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur6,valeur11)"

Range("F12").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur6,valeur12)"

Range("G7").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur7)"

Range("G8").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur7,valeur8)"

Range("G9").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur7,valeur9)"

Range("G10").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur7,valeur10)"

Range("G11").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur7,valeur11)"

Range("G12").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur7,valeur12)"

Range("H8").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur8)"

Range("H9").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur8,valeur9)"

Range("H10").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur8,valeur10)"

Range("H11").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur8,valeur11)"

Range("H12").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur8,valeur12)"

Range("I9").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur9)"

Range("I10").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur9,valeur10)"

Range("I11").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur9,valeur11)"

Range("I12").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur9,valeur12)"

Range("J10").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur10)"

Range("J11").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur10,valeur11)"

Range("J12").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur10,valeur12)"

Range("K11").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur11)"

Range("K12").Select

ActiveCell.FormulaR1C1 = "=COVAR(valeur11,valeur12)"

Range("L12").Select

ActiveCell.FormulaR1C1 = "=VAR(valeur12,valeur12)"

End Sub

Mais je ne m'imagine pas avec les 450 valeurs...

Il y a aura en tète de chaque colonne le nom de la valeur cela commencera à la colonne A... et cela fini à ACH...

et sous elle les différents cours... 1300...

De plus je me suis rendu compte que des fois il y avait des trous dans les cours... mais je ne veux pas que VBA le remplace par 0... Est ce possible ?

merci

Bonjour 1ma9,

Très intéressant la covariance et la corrélation .

Bon je suis allé faire un tour sur le lien rapido : j'ai tout juste compris que la corrélation est une covariance linéaire, ben pour le reste...

(j'ai mal à la tête !)

Je suppose que ton PB est sur le traitement des données staistiques et non sur les calculs eux-mêmes... me trompe-je ?

Alors, si nous pouvions avoir un extrait de la "bête" enfin du fichier pour que puissions examiner ses entrailles et trouver une solution à ton PB.

Au plaisir.

Captain SOLO

Rechercher des sujets similaires à "matrice variance covariance via vba"