Fonction COVARIANCE dans VBA

Erick

XLDnaute Nouveau
Bonjour à tous
je m'adresse à vous car j'ai un soucis avec VB.
Si je crée une formule de Covariance dans Excel elle à la forme :
=COVARIANCE(Feuil1!C51:C59;Feuil1!E51:E59)

Lorque j'essaie de reconstituer la même formule dans VBA, il me semble que la fonction COVARIANCE n'est pas reconnue.

Y aurait-il une fonction différente pour le calcule de la covariance dans VBA ?

Pour illustrer ca, je vous joint une feuille Excel dans laquelle il y a un module (copie). Dans ce module il y a à la fin la construction de la formule. Pour voir le résultat de la 'construction', j'ai mis le tout dans la variable 'texte' (texte = '=Covariance(Feuil1!' ....). La ligne suivante est la définition de la formule appliquée à une cellule qui plante !

Merci d'avance pour votre aide.

Erick [file name=PraticeVB.zip size=33226]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/PraticeVB.zip[/file]
 

Pièces jointes

  • PraticeVB.zip
    32.4 KB · Affichages: 168

albert

XLDnaute Occasionnel
bonsoir Erick,

tu enregitres une macro avec l'utilisation de l'utilitaire d'analyse, tu obtiens une matice de covariances:
Sub VARCOVAR() 'matrice variance covariance dans Portefeuille
Application.Run 'ATPVBAEN.XLA!Mcovar', ActiveSheet. _
Range('C1', Cells(Range('C1').End(xlDown).Row, Range('C1').End(xlToRight).Column)), _
ActiveSheet.Range('B30'), 'C', True
End Sub
 

Hellboy

XLDnaute Accro
Bonsoir EricK, Albert

Je ne connaissais pas cette façon de faire Albert. C'est cool !

Erick, pour retrouver presque toute les formule en VBA, tu peux utiliser
Code:
Application.WorksheetFunction
donc dans ton cas:
Code:
Application.WorksheetFunction.Covar()
 

Erick

XLDnaute Nouveau
Merci beaucoup Albert, mais je n'arrive pas à appliquer ta méthode très séduisante.
Lorsque je demande l'enregistrement d'une macro (Outil/Macro/Nouvelle Macro), j'obtiens une fenètre dans laquelle il n'y a aucune option pour utiliser l'utilitaire d'analyse :-(
Dans l'aide XL/VB il n'y a rien concernant l'utilitaire d'analyse :-(

Quelqu'un peut-il me dire comment on accède à ce fameux 'utilisataire d'analyse'.

Merci d'avance
 

albert

XLDnaute Occasionnel
bonjour Hellboy,Erick,le forum,

Vérifie si tu as bien l'utilitaire d'analyse dans outil/macro/macro complémentaire. il faut qu'il soit coché.
Si rien n'apparaît, il faut installer l'utilitaire d'analyse, le cd office ne l'installe pas par défaut.

albert
 

albert

XLDnaute Occasionnel
...suite
Il faut également installer des références à l’utilitaire d’analyse :
Dans VBA : outil/references/parcourir/program files/microsoft office/office/macrolib/analyse (tous les fichiers) choisir ATPVBAFR => installation en références dans vba project


dans la pièce jointe, il y a une matrice covariances, une matrice de corrélations calcul de moyenne et écart-type [file name=matrice_20050709115302.zip size=14698]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/matrice_20050709115302.zip[/file]
 

Pièces jointes

  • matrice_20050709115302.zip
    14.4 KB · Affichages: 270

Erick

XLDnaute Nouveau
Merci Albert.
Il fallait effectivement que j'installe ce composant.

Hellboy : J'essaie ta méthode mais ca engendre des changements dans le code car la méthode des Worksheets).Cells().Address ne semble pas fonctionner.
Il va falloir que je passe par des definition de plage (set plage = range ()).

Merci à vous
 

Hellboy

XLDnaute Accro
Bonsoir EricK, Albert

Je n'avais pas penser aux utilitaire d'analyse. Je ne connais pas cette fonction Erick alors, j'ai un peu de difficulté a être efficace dans mon aide. Par contr, j'ai trouvé un lien qui pourra peut être t'aider ou complèter ce que tu cherche.

Ce lien n'existe plus
 

albert

XLDnaute Occasionnel
bonsoir Hellboy,

'Le Nain' donne un exemple de portefeuille efficient, mais son système est un peu compliqué : 'Mes langages de prédilection étant plutôt le C ou l'assembleur que Visual Basic pour Application, les macros ci-dessous sont probablement perfectibles et ne constituent en aucune manière des modèles de programmation VBA'

on peut faire plus simple avec l'utilitaire d'analyse, il permet au moins de ne pas compliquer le code avec les matrices.

Ceci dit, son code est un excellent exercice pédagogique

:)

albert
 

Erick

XLDnaute Nouveau
Bonjour Albert,
les grands esprits se sont rencontrés.
En fait je me sert justement d'une feuille XL mise à disposition par 'le nain' pour faire ma propre version.
Je l'adapte à mes besoins et, surtout je (re)developpe chaque ligne pour comprendre ce que fait exactement son programme.
Il s'agit de placement financiers, alors mieux vos comprendre les chiffres présentés.

Sinon, je te remercie pour la pièce jointe, mais je n'ai pas encore eu le temps de l'analyser :-( (plus exeactement j'ai une erreur à l'exécution : il ne trouve pas ATPVBAEN.XLA. Mais je vais y travailler !)

Merci à vous 2 pour votre aide
 

albert

XLDnaute Occasionnel
bonsoir Hellboy,Erick, le forum

le 'Nain' a fait un truc trop compliqué(je n'y comprends pas grand chose), si tu veux comprendre le principe du portefeuille efficient sur excel, il faut commencer par le début:

http://highered.mcgraw-hill.com/sites/dl/free/0072339160/28797/chapter_8_selected_dow_stocks.xls

un bon exemple en vba :
Lien supprimé (il faut construire au préalable une matrice variance/covariance

si tu veux t'amuser avec java (ce n'est pas l'objet du forum, mais l'exemple est approprié au thême, j'espère quez les excelliens ne m'en voudront pas), il y a une belle application (il faut installer une plateforme java, téléchargée sur sun)

http://homepage.mac.com/j.norstad/finance/PortOpt.jar


'il ne trouve pas ATPVBAEN.XLA'
il faut aller le chercher dans macrolib pour l'installer dans vba, sinon ça ne marche pas

albert
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 019
dernier inscrit
BenKmc