Double somme des éléments d'une matrice élevé au carré

Bonjour à tous,

je suis novice en vba et j'aurais s'il vous plait besoin de votre aide sur le problème suivant :

j'ai deux matrices X et Y qui représentent les coordonnées des points (x,y)

je voudrais faire une double somme des cellules de chaque matrice et sommer le résultat des 2 sommes je m'explique sur la matrice X je dois d'abord élever au carré chaque cellule de la matrice puis les multiplier par un coefficient "s" et ensuite faire la somme de chaque ligne de la matrice et obtenir un total "Tot1"

idem pour la matrice Y avec le même coefficient "s" et obtenir un total "Tot2"

par la suite je dois sommer Tot 1 et tot 2 et obtenir la somme finale que je range dans une autre cellule.

Voici un code que j'ai essayé de faire mais il ne marche pas

Dim linX As Integer

Dim ColX As Integer

Dim linY As Integer

Dim ColY As Integer

Dim Tot1 As Double,

Dim Tot2 As Double, i As Long, j As Long, k As Long, l As Long

linY = 2

ColY = 3

linX = 3

ColX = 2

Tot1 = 0

Tot2 = 0

s = Range("A5").Value

' position de la matrice Y

For k = 7 To linY + 13

For l = 10 To ColY + 13

Tot1 = Application.WorksheetFunction.SumProduct((Cells(i, j) ^ 2) * s+ Tot1) " LE probleme est à ce niveau et je ne sais pas quelle formule utiliser"

Next

Next

'position de la matrice X sur la feuille

For i = 7 To linX + 7

For j = 3 To ColX + 7

' éléve la cellule (i,j) au carré puis multiplie le résultat par s et fait la somme des lignes de la matrice

Tot2 = Application.WorksheetFunction.SumProduct((Cells(i, j) ^ 2) * s + Tot2)

Next

Next

range ("A1")= Tot1+Tot2

End Sub

En espérant être assez clair, je vous remercie d'avance de l'aide que vous m'apporterez

cordialement

Bonjour,

Tu n'est pas obligé de le faire en VBA. Une formule peut suffire.

As-tu un bout de fichier excel ?

Bonjour,

le problème c'est que les matrices X et Y varie elles ne sont fixe que lorsqu'on a définit le nombre de points ce qui est fait à l’étape 1

je me dit que faire une boucle Vba pour l’étape 2 qui est la double somme me permettrait de faire le calcul sans avoir à revenir changer la taille de la matrice dans le ou ajouter les éléments dans une simple formule excel comme vous le suggérer.

vu que c'est un fichier comportant plusieurs opérations autre que celle qui nécessite vos aides je vais essayer de ne mettre que la feuille pour le calcul de la double somme et la poster

ok, j'attends le fichier

mais même si la taille des matrices est variable, c'est possible par formule

ci-joint le fichier

ah d'accord je ne savais pas que c’était possible

Cordialement,

10classeur1.xlsm (15.85 Ko)
=SOMMEPROD((mat!C17:D18)*(mat!C17:D18)*mat!A2)+SOMMEPROD((mat!N17:O18)*(mat!N17:O18)*mat!A2)

c'est le cas simple ... on peut maintenant adapter à la taille de la matrice (je le ferai demain matin de plusieurs façons)

15classeur1.xlsm (14.18 Ko)
=SOMMEPROD((mat!C17:D18)*(mat!C17:D18)*mat!A2)+SOMMEPROD((mat!N17:O18)*(mat!N17:O18)*mat!A2)

c'est le cas simple ... on peut maintenant adapter à la taille de la matrice (je le ferai demain matin de plusieurs façons)

je te remercie d'avance Steelson.

je vais continuer à réflechir en m'inspirant de ton code.

A demain

Cordialement,

Pour s'adapter à la taille des matrices, le plus simple est de passer en tableaux

17classeur1.xlsm (15.68 Ko)

je te remercie encore

Rechercher des sujets similaires à "double somme elements matrice eleve carre"