Error sum de Matrice

Bonjour ,

J'ai deux matrice M1 et M2 de type (3 C ,3 L )

J'essaye de faire une somme entre les deux via un button en VBA mais j'ai un message d'erreur je ne comprends pas pourquoi

image
Private Sub SumMatrix_Click()

Dim i As Integer
Dim j As Integer
Dim M1 As Variant
Dim M2 As Variant

' Dim sommeM() As Integer

Dim sommeMat() As Integer
Dim n As Integer

' lire les matrices M1 et M2

Set M1 = Range(Range("A4"), Range("A4").End(xlDown).End(xlToRight))
Set M2 = Range(Range("E4"), Range("E4").End(xlDown).End(xlToRight))

' calcul de la taille de M1

n = sqrt(M1.Count)

' Calcul de la Somme M1 M2 et stocker Result dans SommeMat et redimensionner les resultats

ReDim sommeMat(0 To n - 1, 0 To n - 1) As Integer
For i = 0 To n - 1

    For j = 0 To n - 1

        sommeMat(i, j) = M1(i + 1, j + 1) + M2(i + 1, j + 1)

    Next j

Next

End Sub

Bonjour,

Si j'ai bien compris vous cherchez à sommer 2 matrices de ce type :

image

Dans ce cas deux façons :
- Une via WorksheetFunction :

Sub SOMME_V1()
MsgBox WorksheetFunction.Sum([A4].CurrentRegion, [E4].CurrentRegion)
End Sub

- Une en sommant les cellules une a une des deux matrices :

Sub SumMatrix()
Dim TOT%
Dim C As Range
For Each C In [A4].CurrentRegion
    TOT = TOT + C
Next C
For Each C In [E4].CurrentRegion
    TOT = TOT + C
Next C
MsgBox TOT
End Sub

Si ça ne correspond pas merci de joindre un exemple représentatif avec le résultat attendu.

Cdlt,

Bonjour ,

Merci pour ta réponse , en effet c'est bien ca

mais j'essaye d utuliser un bouton sum pour cela , mon exemple en PJ

Merci :)

6test-matrix.xlsx (13.27 Ko)

Bonjour,

Je comprend mieux avec le fichier merci, il s'agit d'une somme cellule à cellule intra matrices.

Dans ce cas sur la même logique, avec le code commenté :

Private Sub SumMatrix_Click()
Dim C As Range
For Each C In [E4].CurrentRegion 'Pour chaque cellule de la région active de E4
    C.Offset(6) = C + C.Offset(, -4) 'La cellule décallée de 6 lignes est le résultat de la cellule de la région active de E4 + la cellule de la région active de E4 décalée de 4 colonnes vers la gauche
Next C 'Cellule suivante
[E9] = "TOTAL" 'Réinscrit total en E9
End Sub

Ou encore si on se moque du dynamisme de l'étendue de la matrice :

Private Sub SumMatrix_Click()
Dim C As Range
For Each C In [E4:G6] 'Pour chaque cellule de la plage E4:G6
    C.Offset(6) = C + C.Offset(, -4) 'La cellule décallée de 6 lignes est le résultat de la cellule de la région active de E4 + la cellule de la région active de E4 décalée de 4 colonnes vers la gauche
Next C 'Cellule suivante
End Sub

Cdlt,

Merci bcp nickel ca marche , il faudrait jsute le faire maitenant sur une matrice avec 82 column et 1000 ligne :)

Merci bcp pour ton aide

Rechercher des sujets similaires à "error sum matrice"