Sous total de chaque date

Bonjour
j’ai un tableau de trois colonnes Date Libelle Montant
Au debut j’ai séparer le tableau par date en suite j’ai coinsé de mettre un sous total de chaque date
Voici mon fichier demo
Classeur1.xlsm (17,5 Ko)

Bonjour

Ton fichier ci-joint adapté

Attention le premier « Total Synthèse » à la fin de la boucle est bien mis en cellule B19 mais est supprimé par la dernière ligne de ton code :

Range(« B19 »).ClearContents

Voir si il faut la maintenir

Testes et dis moi

Classeur1 (6).xlsm (20,7 Ko)

Bonjour
Merci Mr Pour votre code
c’est une très bonne idée de calculer les totaux de chaque date mais il sont décalé c’est a dire le total de la date 04/01/2021 et afficher dans la date du 03/01/2021 et ca pour tous les dates.

bonjour
j’ai inverse la boucle
For i=19 to Derligne au début ca marche très bien mais le code ne prend pas en charge les ligne ajouter
si au début j’ai 120 ligne le code va arrête a la ligne 120 et non pas pris les ligne ajouter.
voici le nouveau code

Sub test()
Dim ShSynt As Worksheet
Dim Der As Long, i As Long
Set ShSynt = ThisWorkbook.Worksheets("Synthese")
Der = ShSynt.Cells(ShSynt.Rows.Count, 1).End(xlUp).Row
soustotal = 0

For i = 19 To Der
    If Range("A" & i) <> Range("A" & i + 1) And Range("A" & i) <> "" Then
    soustotal = soustotal + Range("C" & i)
    Rows(i + 1).Insert
    Range("B" & i + 1).Value = "Libelle"
    Range("C" & i + 1).Value = "Montant"
    Range("D" & i + 1).Value = "Date D'envoie"
    Rows(i + 1).Insert
    Range("A" & i + 1).Value = "Date Synthese " & Range("A" & i + 3).Value
    Rows(i + 1).Insert
    Range("B" & i + 1).Value = "Total Synthese"
    Range("C" & i + 1).Value = soustotal
    Range("B" & i + 1).HorizontalAlignment = xlRight
    Range("A" & i).ClearContents
    soustotal = 0
    i = i + 3
    Else
    soustotal = soustotal + Range("C" & i)
    End If
Range("A" & i).ClearContents
Next i
End Sub

Bonjour
Merci pour tes réponses
J ai alimenté les « Total synthèse » en fonction de l ensemble de leur répartition à savoir sa présence en amont des données et son absence en toute fin donc en toute logique sa valeur étant la somme des lignes qui suivent
Si celle-ci doit être la somme des précédentes il faut M expliquer pourquoi il est absent en toute fin de la liste pour porter la dernière somme ce n est pas logique
Faute d instruction sur le sujet en fonction de cette présentation J ai adopté ce qui semblait le plus en rapport avec la disposition réalisée par ton code :
Un "Total synthèse " en tout début bien que supprimé en fin d exécution et son absence en fin de liste
C est bien intentionellement dans cet esprit que J ai réparti les sommes
Je te transmet un correctif au plus tôt
Tu ne peux pas utiliser une boucle s appuyant sur l index des lignes du plus petit au plus grand qui en insere car à chaque insertion celui-ci est mise à mal perturbant automatiquement la variable utilisée n etant plus en rapport
Lorsque cette variable représente les données de la ligne 10 par exemple si j en insère une ces donnéesites seront en ligne 11 et non plus en ligne 10 et donc le traitement de la boucle en sera perturbée et ne pourra plus fonctionner correctement
La seule solution si pendant ce traitement on insère ou supprime des lignes c est de faire tourner celle-ci de l index le plus grand au plus petit car ces opérations n affectent que les index qui suivent et non les précédents
Donc pas d autre choix que d utiliser une boucle de la dernière ligne à la première des données
Voilà pour l explication de ta déconvenue

Je te transmet dès que possible un correctif pour mettre les sommes à leur bonne place

merci beaucoup pour votre explication moi aussi je suis entraine de chercher une solution.
et j’attend avec patience votre solution .

Ci-joint donc la version corrigée avec les sommes « Total Synthèse » en fin de liste et non en début

J’ai rajouté pour ce besoin dans le code le « Total Synthèse » de la dernière liste qui était manquant

Je pense ainsi que cela devrait te convenir

Testes et dis moi

Classeur2.xlsm (20,0 Ko)

1 « J'aime »

Mille Merci Mr
Problème résolue.

A ta disposition pour d’autres mises en place
Au plaisir de te lire à nouveau

1 « J'aime »

Merci Mr je vous en pris.
J’ai un grand honneur de faire la connaissance de quelqu’un comme vous qui aime le bien et qui apporte des explications et des solutions. J’ai été ravi de vous connaître

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.