Produit matriciel VBA Excel

Résolu/Fermé
student90 Messages postés 17 Date d'inscription mercredi 13 mars 2013 Statut Membre Dernière intervention 16 mai 2015 - Modifié par student90 le 29/03/2013 à 14:40
student90 Messages postés 17 Date d'inscription mercredi 13 mars 2013 Statut Membre Dernière intervention 16 mai 2015 - 30 mars 2013 à 13:47
Hello Forum,

J'ai essayé de faire deux produits matriciels dans une formule mais je bloque à deux endroits ... Mon but est d'écrire un code VBA où les cellules ne sont pas fixe ->utilisation du Count. J'y suis presque arrivé mais pas pour la matrice en feuille4 (Dimmatrice).

On pourrait également simplifier les codes en utilisant NbTitres qui est variable. Les matrices Transposéestitres, TransposéePondérations et Pondération sont de type NbTitres *1. Dimmatrice est de type NbTitres*NbTitres --> matrice carrée.

Vous l'aurez compris, certaines données sont en feuille 1 et d'autres en feuille 4

Si dessous, vous trouverez mon avancée dans le code.


[code=vb]Sub matrice()

NbTitres = Application.WorksheetFunction.CountA(Feuil1.Range("$A:$A")) - 1

'Problème 1: Insertion des titres en dessus de la matrice
Transposéetitres = Application.WorksheetFunction.Transpose(Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row))

Sheets("feuil4").Cells(Cells(2, 2), Cells2, 5).Value) = Transposéetitres ' je ne dois pas avoir 5 mais NbTitres


'Problème 2: Calcul produit matriciel
TransposéePondérations = Application.WorksheetFunction.Transpose(Range("D2:D" & Range("D" & Rows.Count).End(xlUp).Row))

Pondération = (Range("D2:D" & Range("D" & Rows.Count).End(xlUp).Row))

Dimmatrice =(Sheets("feuil4").(Range("B3:B" & Range("B" & Rows.Count).End(xlUp).Row)),(Sheets("feuil4").Range(.Cells(3, NbTitres)), .Cells(3,.Cells(3,Rows.Count).End(xlUp).Row))) 'ne marche pas... problème se situe à ce niveau (je pense)

Sheets("Feuil1").Cells(2, 7).Value = Sqr(Application.WorksheetFunction.MMult(Application.WorksheetFunction.MMult(TransposéePondérations, Dimmatrice), Pondération)) 'calcul de la racine de 2 produit mat


End Sub [/code]


Lien pour le fichier: https://www.cjoint.com/?3CDlsmUngWl

Merci d'avance pour vos suggestions !

1 réponse

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
29 mars 2013 à 19:22
Bonjour,
pour te répondre il faudrait déjà avoir un ti début de piste.
Le classeur que tu poste ne contient...... RIEN ou presque.
Poste le classeur .xlsm avec ta/tes macro et des données un peu plus explicite ça aidera déjà.
En plus met le résultat souhaiter sur une autre feuille (même en manuel)
A+
0
student90 Messages postés 17 Date d'inscription mercredi 13 mars 2013 Statut Membre Dernière intervention 16 mai 2015
30 mars 2013 à 13:47
Voilà j'ai essayé de répondre à tes demandes. J'ai tout mis sur la feuille 1 et le résultat souhaité se trouve à la cellule G3. Ma difficulté réside dans le fait que les matrices n'ont pas de valeur fixes (par contre la valeur de départ en 1;1 l'est toujours). C'est pour ça que j'ai introduits des count mais je ne sais pas si c'est juste.

Le dossier se trouve sur ce lien : https://www.cjoint.com/?3CEnSZZ7iuy

Merci pour ton aide !
0