Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Erreur avec la fonction MMult

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 !

Johan_25

XLDnaute Nouveau
Bonjour à tous,
Pour un problème de mécanique je voudrais résoudre un système d'équation à l'aide d'excel et de manipulation de matrice.

Au moment de multiplier 2 matrices ensemble : VBA me signale cette erreur :
"Erreur d'éxecution '1004': Impossible de lire la proriété MMult de la classe worksheetFunction".

J'ai vu cette erreur sur d'autre forum mais je n'ai jamais réussi à trouver une solution pour mon code : (ne pas regarder la phase de remplissage des tableaux : c'est sans importance)
Si qq'un à la solution 😉

VB:
Sub res_systeme()

Const n As Integer = 2 'le nombre de subdivision du pieu
Dim l_pieu As Double
Dim M_0 As Double
Dim T_0 As Double

l_pieu = 2
M_0 = 0
T_0 = 20


Dim mat_A(1 To n * 4, 1 To n * 4) As Double
Dim C_i() As Double
Dim mat_B(1 To n * 4) As Double
'A.C = B avec C la matrice des constantes Cik inconnues
'C=A^-1.B : Résolution du système

'--------------------------------------------------
'REMPLISSAGE DES MATRICES mat_A et mat_B 
'--------------------------------------------------

C_i = Application.WorksheetFunction.MMult(Application.WorksheetFunction.MInverse(mat_A), mat_B) 'ici mon erreur


End Sub
 
Dernière édition:
Solution
Ah je crois que MatB devrait être dimensionné 1 To 8, 1 To 1, soit 8 lignes d'une colonne pas une ligne de 8 colonnes comme assumé s'il n'y a qu'une dimension.
C'est ce que je fait dans mon module SysEqua, sauf que je peux avoir plusieurs colonnes de valeurs Y différentes pour calculer différents problèmes avec la même matrice inversée.
Ah je crois que MatB devrait être dimensionné 1 To 8, 1 To 1, soit 8 lignes d'une colonne pas une ligne de 8 colonnes comme assumé s'il n'y a qu'une dimension.
C'est ce que je fait dans mon module SysEqua, sauf que je peux avoir plusieurs colonnes de valeurs Y différentes pour calculer différents problèmes avec la même matrice inversée.
 
Dernière édition:
Je crois que tu as touché au bon endroit !
Effectivement en déclarant ma matrice B tel que (1 to n, 1 to 1) le calcul s'effectue correctement !
J'étais persuadé que de déclarer juste un vecteur tel que dim B (1 to n) était suffisant pour déclarer un vecteur de n lignes et de 1 colonne ... Apparemment non ?

En tout cas mille mercis pour ton temps passé à m'aider et surement à une prochaine fois 😉
Johan
 
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…