Multiplication de matrice en VBA

Bonjour je cherche à multiplier une matrice (1,3) à une (3,3)

après des recherche j'ai écrit ce code:

Dim test(0 To 2, 0 To 2) As Single

Dim i As Single

Dim j As Single

Dim test3(0 To 2) As Single

Dim toto(0 To 2) As Single

Sub Macro1()

' Macro1 Macro

For i = 0 To 2

For j = 0 To 2

test(i, j) = Cells(i, j).Value

test3(i) = Cells(i + 3, 1).Value

Next

Next

toto = Application.WorksheetFunction.MMult(test3, test)

MsgBox toto(0)

MsgBox toto(1)

MsgBox toto(2)

End Sub

Et mon programme bug à ce niveau toto = Application.WorksheetFunction.MMult(test3, test) "impossible d'affecter le tableau toto"

Avez vous une idée svp?

Merci d'avance

Salut le forum

Ton programme déjà doit retourner une erreur ici, la cellule 0,0 n'existe pas

test(i, j) = Cells(i, j).Value

Ensuite la solution retourne un tableau commencant à 1

toto = Application.WorksheetFunction.MMult(test3, test)

MsgBox toto(1)
MsgBox toto(2)
MsgBox toto(3)

Ton code

Sub MultMatrice()
Dim i As Single
Dim j As Single
Dim test(0 To 2, 0 To 2) As Single
Dim test3(0 To 2) As Single
Dim toto()

For i = 0 To 2
 For j = 0 To 2
  test(i, j) = Cells(i + 1, j + 1).Value
  test3(i) = Cells(i + 3, 1).Value
 Next j
Next i

toto = Application.WorksheetFunction.MMult(test3, test)

MsgBox toto(1)
MsgBox toto(2)
MsgBox toto(3)

End Sub

Merci ça marche!

Par contre j'ai un nouveau probleme, ça marche pour multiplier une matrice 1x3 par une 3x3, mais comment faire pour multiplier une 3x3 par une 3x1?

en sachant que toto = Application.WorksheetFunction.MMult(test, test3)

Me renvoi un message d'erreur sur la dimension de la matrice,

j'imagine que c'est au niveau d'ou on rentre le tableau test3 mais je ne comprend pas comment dire à test3 que c'est une matrice 3ligne une colone

Merci encore

Rechercher des sujets similaires à "multiplication matrice vba"