Macro : tableau et SUM

Bonjour,

Après avoir testé dans tous les sens une macro et n'arrivant pas à finaliser les choses, je me permets de solliciter l'aide des experts !

Dans un fichier Excel j'ai une base de données, sur 5 colonnes, qui permet de faire un suivi de volumes :

Vendeur Ville Produit Gamme Volume

ZUG Lyon TV 2014 17

MER Paris TV 2014 9

ROI Marseille TV 2015 12

ZUG Lyon TV 2015 12

L'objectif de ma macro est de construire un tableau à partir de la BDD, et ensuite de le parcourir pour identifier toutes les valeurs d'un vendeur et de faire la somme des volumes pour ce vendeur. Ensuite je veux afficher le résultat dans une cellule. Bien entendu tout cela se fait très simplement sans macro dans Excel, mais sans entrer dans les détails je dois le faire en macro pour ensuite implémenter cette macro dans un autre programme.

Voici le code que j'ai fait, et qui va bien jusqu'au moment de faire la somme (mon SUM ne me renvoie que le résultat de la dernière ligne du tableau (donc 12 dans mon exemple), et non la somme de toutes les lignes contenant "ZUG" (donc 29 dans mon exemple) :

Sub TestTabDyn()

'Création d'un tableau dynamique
'Fonction pour connaitre la dernière cellule d'un bloc de cellules non vides
derniere_ligne = Range("A1").End(xlDown).Row

Dim TabRealises()
'Redimension de tableau
ReDim TabRealises(derniere_ligne - 2, 4)

'Enregistrement des valeurs dans le tableau
For i = 0 To derniere_ligne - 2
TabRealises(i, 0) = Range("A" & i + 2)
TabRealises(i, 1) = Range("B" & i + 2)
TabRealises(i, 2) = Range("C" & i + 2)
TabRealises(i, 3) = Range("D" & i + 2)
TabRealises(i, 4) = Range("E" & i + 2)
Next

'On parcourt les données avec une boucle
For i = 0 To derniere_ligne - 2
    'On teste la valeur de la colonne 1 pour regarder les "ZUG"
    If TabRealises(i, 0) = "ZUG" Then
        Cells(58, 2).Value = Application.WorksheetFunction.Sum(TabRealises(i, 4))
    End If
Next

End Sub

J'ai bien conscience qu'il faudrait que je "sorte" le SUM du test et que je le fasse à la fin de la boucle, mais je ne vois pas comment... toute aide au grand débutant que je suis sera donc la bienvenue !

Edit : ajout d'un fichier d'exemple

22classeur2.xlsm (21.70 Ko)

bonjour

suggestion (parce que je n'aime pas VBA et qu'il me le rend bien) :

Dans le fichier destination :

  • créer la cellule où on saisit le vendeur
  • mettre au point la formule (tu sembles connaître SOMMEPROD) à implémenter
  • effacer la formule
  • lancer l'enregistreur de macro
  • saisir la formule
  • fermer l'enregistreur

Bonjour au lieu d'écrire ceci :

 Cells(58, 2).Value = Application.WorksheetFunction.Sum(TabRealises(i, 4))

essayez

 Cells(58, 2) =  Cells(58, 2) + TabRealises(i, 4)
Machin a écrit :

Bonjour au lieu d'écrire ceci :

 Cells(58, 2).Value = Application.WorksheetFunction.Sum(TabRealises(i, 4))

essayez

 Cells(58, 2) =  Cells(58, 2) + TabRealises(i, 4)

Wahou, merveilleux ! Je ne pensais pas que le fait d'être passé par un tableau m'évitait de faire une somme.

Un grand merci.

Rechercher des sujets similaires à "macro tableau sum"