Fonction COVARIANCE dans VBA

  • Initiateur de la discussion Initiateur de la discussion Erick
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Erick

Guest
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

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
 
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()
 
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
 
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
 
...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

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
 
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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Réponses
2
Affichages
157
Réponses
1
Affichages
499
Réponses
32
Affichages
1 K
Retour