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

Résolu/Fermé
longnight Messages postés 3 Date d'inscription vendredi 2 novembre 2018 Statut Membre Dernière intervention 3 novembre 2018 - Modifié le 3 nov. 2018 à 11:28
longnight Messages postés 3 Date d'inscription vendredi 2 novembre 2018 Statut Membre Dernière intervention 3 novembre 2018 - 3 nov. 2018 à 21:35
Bonjour,

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

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

yg_be Messages postés 23328 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 Ambassadeur 1 551
Modifié le 3 nov. 2018 à 10:20
bonjour, peux-tu poster ton code en utilisant la coloration syntaxique?

"il ne marche pas": message d'erreur, résultat inattendu, ?

as-tu essayé:
Tot1 =  Tot1 + Cells(i, j) ^ 2 * s
0
longnight Messages postés 3 Date d'inscription vendredi 2 novembre 2018 Statut Membre Dernière intervention 3 novembre 2018
3 nov. 2018 à 13:11
bonjour,
merci pour le temps que tu prends pour m'aider à resoudre mon problème
la somme de mon code renvoit 0
.
j'ai aussi essyé celui que tu m'a ecrit il renvoit également 0.
0
yg_be Messages postés 23328 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551 > longnight Messages postés 3 Date d'inscription vendredi 2 novembre 2018 Statut Membre Dernière intervention 3 novembre 2018
3 nov. 2018 à 13:24
tu pourrais multiplier par s à la fin, non?
tu avais écrit "LE probleme est à ce niveau et je ne sais pas quelle formule utiliser". ceci est maintenant résolu.
ajoute "option explicit" en début de module.
je te conseille de bien réfléchir à ton code:
- à quoi correspondent les 4 variables lin et col?
- d'où viennent les valeurs que tu mets dans tes boucles for?
0
longnight Messages postés 3 Date d'inscription vendredi 2 novembre 2018 Statut Membre Dernière intervention 3 novembre 2018
3 nov. 2018 à 21:35
je te remercie encore yg_be j'ai pu faire fonctionner mon code
0