Surement du vba...

beaf77

XLDnaute Junior
Bonjour à tous,

J'espère que tous les exceliennes & excelliens n'ont pas déserté leur pc durant ces beaux jours et que quelqu'un pourra m'apporter une solution pour mon problème...

Je m'explique :
J'ai une Bdd qui contient une ligne sur laquelle nous avons un individu (un matricule) et un montant.
Un individu peut avoir plusieurs lignes...
Il faut que je puisse regrouper sur une seule ligne mon individu avec la somme des montants de chaque ligne qui lui est associé...

Peut etre une boucle en vba pourrait faire l'affaire...
Ci-joint un fichier avec un exemple
Le tableau gauche est la Bdd et le tableau droit est le résultat que je souhaiterai obtenir...

En vous remerciant par avance
Bon we
 

Pièces jointes

  • tets.xls
    16.5 KB · Affichages: 64

jeanpierre

Nous a quitté
Repose en paix
Re : Surement du vba...

Bonjour beaf77, re le forum,

Peut-être en modifiant ton tableau comme dans l'exemple joint...

A toi de nous dire.

Bonne fin d'après-midi

Jean-Pierre
 

Pièces jointes

  • tetsbeaf77.zip
    5.1 KB · Affichages: 14
C

Compte Supprimé 979

Guest
Re : Surement du vba...

Salut Beaf77,

en H5, un simple : =SOMME.SI(A$5:A$14;G5;B$5:B$14), devrait aller
Recopie vers le bas et hop ...

Dans le tableau récap, ne pas mettre : Total 0000001,
mais : 0000001

Voilà ;)
 

Papaye

XLDnaute Occasionnel
Re : Surement du vba...

Bonjour,

Connais tu l'identifiant de tous tes individus.
Si oui, tu peux faire utiliser la fonction SOMME.SI...
Si tu ne les connaît pas de façon certaine (ou s'ils peuvent changer), le mieux est alors d'utiliser une formule matricielle ... mais là Monique pourra t'aider !
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Surement du vba...

Bonjour Beaf, bonjour le forum,

Je te propose la marco suivante :

Code:
Sub Macro1()
 
Dim tot As Double 'déclare la variable tot
Dim dl As Long 'déclare la variable dl
Dim x As Long 'déclare la variable x
 
dl = Range("A65536").End(xlUp).Row 'définit la variable dl
 
'boucle inversée (de la dernière à la première) : sur toutes les cellules éditée de la colonne A (jusqu'à A5)
For x = dl To 5 Step -1
    tot = CDbl(Cells(x, 2).Value) 'définit la variable tot
 
    If Cells(x, 1).Value = Cells(x - 1, 1).Value Then 'condition : si la cellule du dessus a la même valeur
        tot = tot + CDbl(Cells(x - 1, 2).Value) 'redéfinit la variable tot
        Cells(x - 1, 2).Value = tot 'place la somme dans la cellule du dessus (colonne B)
        Range(Cells(x, 1), Cells(x, 2)).Delete Shift:=xlUp 'supprime la ligne
    End If 'fin de la condition
 
Next x 'prochaine cellule au dessus
 
End Sub

Édition :

Ho p...! j'arrive grave après la bataille... Bonjour à tous ceux (et celle) que j'ai croisé...
 
Dernière édition:

beaf77

XLDnaute Junior
Re : Surement du vba...

Tout simplement avec les fonctions somme.prod ou somme.si que je n'utilise pas assez pour y avoir pensé!!!
Un bon boulot derrière comme même mais c'est impeccable

Robert, après la bataille mais le vba m'intéresse et je débute...
Je vais essayer d'approfondir ta formule pour comprendre grosso modo comment ça se passe

Merci à tous ;)
 

Discussions similaires

Réponses
10
Affichages
523
Réponses
7
Affichages
293

Statistiques des forums

Discussions
312 248
Messages
2 086 593
Membres
103 248
dernier inscrit
Happycat