Tableau récapitulatif addition de données

Bonjour,

Je sollicite votre aide sur un problème simple.

capture

J'ai plusieurs tableaux oranges (un par mois) qui comprennent des noms associés à un nombre d'UO que j'alimente manuellement chaque mois. A côté de ces tableaux oranges, j'ai un tableau vert qui fait la somme des UO associées à chaque nom. Aujourd'hui je fais cette somme manuellement mais cela me prend un temps fou. Comment puis-je faire pour que cela se fasse automatiquement ?

Merci de votre aide.

Cordialement,

Flantier

Bonjour Flantier,

Vous travaillez à l'envers...

Mettez l'intégralité de vos données mensuelles dans un unique onglet, en intégrant une cellule "date" par ligne.

Si non au bout de trois ans vous allez vous retrouver avec une foule d'onglets quasi vides (trente cellules utiles pour plusieurs millions de cellules disponibles...)

Et pour faire le total utilisez la fonction SOMME.SI.ENS() à laquelle ont peut associer plusieurs conditions

total UO pour Grégoire entre le 1er janvier et le 1er février par exemple

Bonjour

Bonjour à tous

Un essai à tester. Te convient-il ?

Bye !

8classeur1-v1.xlsm (25.47 Ko)

Bonjour à tous,

@gmb : quel serait ton code si on affectait les données en Feuil2 ?

J'ai tenté d'adapter ton code, mais je n'obtiens pas le résultat souhaité....

(les variables K et tablo(R) sont-elles utiles ?)

Spoiler
Option Explicit

Dim i&, j&, dercol&, dico As Object

Sub MetreAjour()

With Sheets("Feuil1")

    Set dico = CreateObject("Scripting.Dictionary")
    dercol = .Cells(1, Columns.Count).End(xlToLeft).Column

    For j = 4 To dercol Step 3
        For i = 3 To .Cells(Rows.Count, j).End(xlUp).Row
            If dico.exists(.Cells(i, j).Value) Then
                dico(Cells(i, j).Value) = dico(.Cells(i, j).Value) + .Cells(i, j + 1).Value
            Else
                dico(.Cells(i, j).Value) = .Cells(i, j + 1).Value
            End If

        Next i
    Next j

    With Sheets("Feuil2")
    .Activate
    .Range("A2").CurrentRegion.Offset(2, 0).ClearContents
    .Range("A2").Range("A3").Resize(dico.Count, 1) = Application.Transpose(dico.keys)
    .Range("A2").Range("B3").Resize(dico.Count, 1) = Application.Transpose(dico.items)
    .Range("A2").Range("A3:B" & Range("A" & Rows.Count).End(xlUp).Row).Sort key1:=Range("A3"), _
                order1:=xlAscending, Header:=xlNo
   End With
End With
End Sub

Amitiés,

@xorsankukai

Bonjour

quel serait ton code si on affectait les données en Feuil2 ?

Dans ce cas, on peut se passer du bouton de commande et faire une macro événementielle qui se déclenche quand on active la feuille ''TOTAL"

8classeur1-v2.xlsm (27.85 Ko)

Mais on peut aussi le laisser pour se rassurer en refaisant le recap.

les variables K et tablo(R) sont-elles utiles

Non ! elles sont inutiles et j'aurais dû les effacer : elles sont les vestiges d'une première inspiration qui consistait à utiliser de variables tableau pour les données mensuelles. J'y ai vite renoncé et mon étourderie a fait le reste.

OK ?

Bye !

Re,

Merci gmb pour ta réponse, c'est ok pour moi,

Amitiés,

Bonjour,

J'ai complètement remanié l'onglet en utilisant un tableau croisé dynamique (beaucoup plus simple). Mais avant ça j'ai tout de même essayé la fonction SOMME.SI.ENS() qui marche à merveille.

Merci à vous,

Flantier

Rechercher des sujets similaires à "tableau recapitulatif addition donnees"