Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

somme de 6 variables tableau


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    somme de 6 variables tableau
    bonsoir à vous,

    je vous prie de me venir en aide;

    en effet j'aimerai faire la somme de 6 variables tableaux de même dimension (ligne, colonne)

    j'ai essayé de m'inspirer de la somme de 2 variables tableaux mais, le système me renvoie un erreur (j'arrive à renseigner les 6 tableaux, mais je bloque au moment de leur somme)

    voila mon code:

    Code vba :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub LoadSommeTablo()
        LoadLes6Tablo 'procedure qui remplis les 6 tableau
     
        For r = 1 To UBound(s)
             For c = 1 To UBound(s, 2)
                  s(r, c) = t1(r, c) + t2(r, c) + t3(r, c) + t4(r, c) + t5(r, c) + t6(r, c)
             Next c
        Next r
    End Sub

  2. #2
    Responsable
    Office & Excel

    Salut.

    Sans voir les tableaux, il est malaisé de te donner une réponse. Les tableaux ont-ils les mêmes dimensions? Et surtout, Quel est le message d'erreur et sur quelle ligne ton code bloque-t-il?


    Code vba :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub SumArray()
      Dim t1, t2, t3, t4, t5, t6, t7
      Dim C As Long
     
      t1 = VBA.Array(1, 5, 7, 9)
      t2 = VBA.Array(5, 8, 4, 3)
      t3 = VBA.Array(9, 7, 5, 6)
      t4 = VBA.Array(6, 7, 4, 3)
      t5 = VBA.Array(8, 6, 4, 9)
      t6 = VBA.Array(8, 6, 5, 2)
     
      ReDim t7(0 To UBound(t1))
      For C = 0 To UBound(t7)
        t7(C) = t1(C) + t2(C) + t3(C) + t4(C) + t5(C) + t6(C)
      Next C
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Nouveau Candidat au Club
    les tableaux ont les mêmes dimensions ( 32 lignes et 12 colonnes)

    l'erreur c'est: "l'indice n'appartient pas à la sélection"

  4. #4
    Membre chevronné
    Bonsoir,


    Exemple pour 2 Array() 2D


    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub SommeArray()
      t1 = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}")
      t2 = Evaluate("{2,3,4;5,6,7;8,9,10;11,12,13}")
      x1 = LBound(t1)
      x2 = LBound(t1, 2)
      Y1 = UBound(t1)
      y2 = UBound(t1, 2)
      ReDim c(x1 To Y1, x2 To y2)
      For i = x1 To Y1
        For j = x2 To y2
          c(i, j) = t1(i, j) + t2(i, j)
        Next j
      Next i
      [A1].Resize(Y1, y2) = c
    End Sub


    Boisgontier

  5. #5
    Expert éminent sénior
    Citation Envoyé par Benjohan2010 Voir le message
    les tableaux ont les mêmes dimensions ( 32 lignes et 12 colonnes)
    l'erreur c'est: "l'indice n'appartient pas à la sélection"
    Dans ton code, tes variables ne sont ni déclarées ni renseignées en tant que tableau.
    Donc, par défaut, elles sont une dimension 0 et ne peuvent pas avoir d'indice.

    On ne peut pas donner d'indice à une variable qui n'en a pas.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

###raw>template_hook.ano_emploi###