Produit matriciel VBA Excel

Résolu
student90 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
student90 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -
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 !
A voir également:

1 réponse

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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   Statut Membre Dernière intervention  
 
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