Comment faire la somme d'un même user sur une feuille différente ?

Bonjour à tous,

je veux faire la somme de mes lignes qui ont le même user. En gros, j'ai 2 feuilles "Summary_final " et "Summary" et je veux faire la somme des données de la feuille "Summary " par user et les mettre dans Summary_final. Par exemple, le User 24 c'est facile car il a acheté que un seul produit mais le user 104 a acheté 4 produits différents et donc j'ai besoin de la somme de tous ces produits ( de la colonne C à H) et je veux les mettre alors dans mon user 104 de mon autre feuille. Voici les 2 fichiers pour comprendre.

Multipost

Bonsoir le fil, bonsoir le forum,

Comme je ne sais pas où a été posté le même fil et comme j'y ai bossé dessus je te propose le code ci-dessous :

Sub ThauTheme()
Dim OS As Worksheet 'déclare la variable OS (Onglet Summary)
Dim OSF As Worksheet 'déclare la variable OSF    (Onglet SUMMARY)
Dim TV As Variant 'déclare la variable OS (Onglet SUMMARY_FINAL)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire)
Dim TL() As Variant 'déclare la variable TL(Tableau des Lignes)
Dim LI As Integer 'déclare la variable LI (LIgne)

Set OS = Worksheets("SUMMARY") 'définit l'onglet OS
Set OSF = Worksheets("SUMMARY_FINAL") 'définit l'onglet OSF
OSF.Range("A1").CurrentRegion.Offset(1, 0).ClearContents 'efface les anciennes valeurs de l'onglet OSF
TV = OS.Range("A1").CurrentRegion 'définit la tableau des valeurs TV
Set D = CreateObject("Scripting.Dictionary") 'définit la dictionnaire D
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tabelau des valeurs TV (en partant de la seconde)
    D(TV(I, 1)) = D(TV(I, 1)) + 1 'alimente le dictionnaire D avec les donnée de la colonne 1 de TV
Next I 'prochaine ligne de la boucle
TMP = D.keys 'récupère dans le tableau temporaire TMP la listes des éléments du dictionnaire D sans doublon (les clés)
LI = 2 'initialise la ligne LI
For J = 0 To UBound(TMP) 'boucle 1 : sur tous les éléments J du tableau temporaire TMP
    For I = 2 To UBound(TV, 1) 'boucle 2 "sur toutes les lignes I du tabelau des valeurs TV (en partant de la seconde)
        If TV(I, 1) = TMP(J) Then 'condition : si la donnée ligne I colonne 1 de TV est égale à l'élément J de TMP
            ReDim Preserve TL(1 To 7, 1 To 1) 'redimensionne le tableau des lignes TL (7 ligne , 1 colonne)
            TL(1, 1) = TV(I, 1) 'récupère dans la ligne 1 de TL la donnée en colonne 1 de TV
            TL(2, 1) = TL(2, 1) + TV(I, 3) 'récupère dans la ligne 2 de TL la donnée en colonne 3 de TV en faisant la somme
            TL(3, 1) = TL(3, 1) + TV(I, 4) 'récupère dans la ligne 3 de TL la donnée en colonne 4 de TV en faisant la somme
            TL(4, 1) = TL(4, 1) + TV(I, 5) 'récupère dans la ligne 4 de TL la donnée en colonne 5 de TV en faisant la somme
            TL(5, 1) = TL(5, 1) + TV(I, 6) 'récupère dans la ligne 5 de TL la donnée en colonne 6 de TV en faisant la somme
            TL(6, 1) = TL(6, 1) + TV(I, 7) 'récupère dans la ligne 6 de TL la donnée en colonne 7 de TV en faisant la somme
            TL(7, 1) = TL(7, 1) + TV(I, 8) 'récupère dans la ligne 7 de TL la donnée en colonne 8 de TV en faisant la somme
        End If 'fin de la condition
    Next I 'prochaine ligne de la boucle 2
    'renvoie le tableu TL transposé dans la cellule ligne LI colonne 1 de l'onglet OSF
    OSF.Cells(LI, 1).Resize(1, 7).Value = Application.Transpose(TL)
    Erase TL: LI = LI + 1 'vide TL, incrémente LI
Next J 'prochain élément de la boucle 1
End Sub
Rechercher des sujets similaires à "comment somme meme user feuille differente"