VBA math et tableaux

bonsoir

je souhaiterai calculer les elements de mon tableau nommé tablo2 en calculant sous forme mathematique :

tablo2(i,j)= SOM(tablo(i,k)*tablo1(k,j) avec i et j et k variant tout les trois entre 1 et 3

pour avoir à eviter d'ecrire tablo2(1,1)= tablo(1,1)*tablo1(1,1) + tablo(1,2)*tablo1(2,1) +tablo(1,3)*tablo1(3,1)

tablo2(1,2)= tablo(1,1)*tablo1(1,2) + tablo(1,2)*tablo1(2,2) +tablo(1,3)*tablo1(3,2)

tablo2(1,3)= tablo(1,1)*tablo1(1,3) + tablo(1,2)*tablo1(2,3) +tablo(1,3)*tablo1(3,3)

jusqu'a :

tablo2(3,1)= tablo(3,1)*tablo1(1,3) + tablo(3,2)*tablo1(2,3) +tablo(3,3)*tablo1(3,3)

ce qui m’embête le plus est la facon d’écrire la somme dans SOM(tablo(i,k)*tablo1(k,j) avec i et j et k variant tout les trois entre 1 et 3 .

Merci pour vos réponses si il y en a pour cette question

Bonsoir,

Tes données sont insuffisantes, tu n'en doutais pas j'espère !

tablo ? tablo1 ? Qui les voit ?

Un classeur est plus que recommandé.

Cordialement

Bonjour je vous donne l'integralité du code que je souhaite mettre en forme :

Option Base 1
Sub tab_matrice()
Dim tablo(), tablo1(), tablo2() As Variant
Dim i, j, k As Integer
Dim resultat As String
'calcul d'un produit de  2 matrices 3x3.

'création de la premiere matrice:
ReDim tablo(1 To 3, 1 To 3)
   For i = 1 To UBound(tablo)
     For j = 1 To UBound(tablo)
        tablo(i, j) = InputBox(i & "ere ligne" & j & "ieme colonne", "Matrice 1")
     Next
  Next
 'creation de la seconde matrice:
 ReDim tablo1(1 To 3, 1 To 3)
   For i = 1 To UBound(tablo1)
     For j = 1 To UBound(tablo1)
        tablo1(i, j) = InputBox(i & "ere ligne" & j & "ieme colonne", "Matrice 2")
     Next
  Next
'calcul du produit des deux matrices obtenues :
ReDim tablo2(1 To 3, 1 To 3)
   For i = 1 To UBound(tablo2)
     For j = 1 To UBound(tablo2)
       for k =1 to 3
'tablo2(i,j)= SOM(tablo(i,k)*tablo1(k,j) avec i et j et k variant tout les trois entre 1 et 3  c'est cette ligne que je voudrais simplifier et ne vois pas comment ecrire la somme 
     Next
  Next
next
'interrogation sur les elements de la matrice obtenues :
msgbox tablo2(2,3)
End Sub

Merci pour toute suggestion

Sauf erreur, c'est une somme de produits que tu fais :

For k = 1 to 3
    tablo2(i, j) =tablo2(i, j) + tablo(i, k) * tablo1(k, j)
Next k

Cordialement

Un grand merci à vous ! ca à l'air tout bete comme réponse je voyais les choses de facon plus compliquées

Un peu rouillé sur ce type de calcul, j'ai hésité ! Et fais à la main pour vérifier que ça correspondait à la définition.

On oublie toujours qu'avec VBA on procède de façon plus basique qu'en manipulant des formules, ce qui me fait dire souvent que les calculs sont plus simples en VBA (mais pas toujours plus simple de les penser plus simplement).

Bonne continuation.

c'est testé et ca marche bien alors pour un produit matriciel de 2 matrice de dimension 3x3 on a

Option Base 1
Sub tab_matrice()
Dim tablo(), tablo1(), tablo2() As Variant
Dim i, j, k As Integer
Dim resultat As String
'calcul d'un produit de matrice 3x3.

'création de la premiere matrice:
ReDim tablo(1 To 3, 1 To 3)
   For i = 1 To UBound(tablo)
     For j = 1 To UBound(tablo)
        tablo(i, j) = InputBox(i & "ere ligne" & j & "ieme colonne", "Matrice 1")
     Next
  Next
 'creation de la seconde matrice:
 ReDim tablo1(1 To 3, 1 To 3)
   For i = 1 To UBound(tablo1)
     For j = 1 To UBound(tablo1)
        tablo1(i, j) = InputBox(i & "ere ligne" & j & "ieme colonne", "Matrice 2")
     Next
  Next
'calcul du produit des deux matrices obtenues :
ReDim tablo2(1 To 3, 1 To 3)
   For i = 1 To UBound(tablo2)
     For j = 1 To UBound(tablo2)
        For k = 1 To 3
    tablo2(i, j) = tablo2(i, j) + tablo(i, k) * tablo1(k, j)
        Next k
     Next
  Next

  MsgBox tablo2(1, 2) 'pour le test
End Sub
Rechercher des sujets similaires à "vba math tableaux"