Faire des totaux en macro VBA

Bonjour,

afin d'automatiser un tableau je souhaiterais que se fasse automatiquement dans ma colonne T les totaux des montants (colonne R) en fonction du nom (colonne K) et en fonction de la date (colonne L)

à chaque fois qu'un nom ou une date change, il faut que le total apparaisse en colonne T. Ce total est le cumul de la colonne R pour un même nom et pour une même date.

j'ai mis en un exemple le tableau avec les montant saisis mais qui devrait être automatisé.

A noter que je ne peux pas utiliser la fonction sous total d'excel (il ne faut pas que je rajoute des lignes dans ce tableau)

et je voudrais vraiment passer par du VBA car avec une formule ça me complique les choses, mon tableau final fait plus de 2000 groupes, du coup faire glisser une formule n'est pas optimisé.

J'en appel donc au pro du VBA, je suppose qu'il faut faire une boucle.

Une macro en un clic serait donc le must pour moi

par avance merci!!

bonne soirée

Bonsoir,

Teste le code suivant :

Sub total()
derLig = Range("K" & Rows.Count).End(xlUp).Row
Range(Cells(5, "T"), Cells(derLig, "T")) = "=IF(RC[-9]&RC[-8]<>R[1]C[-9]&R[1]C[-8],SUMIFS(R5C18:R" & derLig & "C18,R5C11:R" & derLig & "C11,RC[-9],R5C12:R" & derLig & "C12,RC[-8]),"""")"
End Sub

Bonsoir Raja,

le code ne s'est pas affiché dans ta reponse

Re,

J'avais une correction à faire. C'est fait tu peux la tester.

je viens de tester le principe me parait très bon.

parcontre il faudrait que la macro différencie les groupes (colonne A)

parceque la je te joint une modification du fichier, par exemple dans un groupe on peut retrouver des noms qui etait déja dans un autre groupe. Je m'excuse de ne pas l'avoir précisé avant

exemple ds mon fichier ci-joint, j'ai mis Rick et Daryl dans le groupe 3 avec les mêmes dates que le groupe 1. La macro cumule les montants du groupe 1 et 3. Pour mon tableau il faudrait que les groupes soit indépendant et qu'elle ne cumulent pas

j'espere que tu pourras m'aider


voilà le tableau d'exemple dont je t'ai parlé

Re,

Essaye ce code :

Sub total()
    Dim derLig As Integer, i As Integer, j As Integer
    derLig = Range("K" & Rows.Count).End(xlUp).Row
    j = 5
    For i = 5 To derLig
        If Cells(i, 11) & Cells(i, 12) <> Cells(i + 1, 11) & Cells(i + 1, 12) Then
            Range(Cells(i, "T"), Cells(derLig, "T")) = "=SUMIFS(R" & j & "C18:R" & i & "C18,R" & j & "C11:R" & i & "C11,RC[-9],R" & j & "C12:R" & i & "C12,RC[-8])"
            j = i + 1
        Else
            Range(Cells(i, "T"), Cells(derLig, "T")) = ""
        End If
    Next i
End Sub

Je viens de tester ça m'a l'air parfait!!!

je te remercie infiniment!

c'est exactement ce que je voulais

encore merci pour le temps consacré à m'aider!

bonne soirée, à bientôt

Rechercher des sujets similaires à "totaux macro vba"