Sous-total toutes les 12 lignes

VirtualDid

XLDnaute Nouveau
Bonjour !

Dans une liste de données (fichier joint), je souhaite effectuer des sous-totaux toutes les 12 lignes, indépendamment du contenu de la liste et je n'ai pas trouvé d'information sur le forum.

Pour cela, j'ai :
- inséré une colonne vide intitulée Code
- créé la formule =ARRONDI.INF((LIGNE(A1)-1)/12;0) pour afficher une numérotation incrémentée toutes les 12 cellules
- recopié cette formule vers le bas (le résultat change toutes les 12 cellules)
- utilisé la commande Sous-total (onglet Données > groupe Plan > bouton Sous-total) : voir copie d'écran dans la feuille

Est-ce qu'il existe une solution plus simple ne nécessitant pas la création d'une colonne supplémentaire et sans passer par les macro-commandes ?
 

Pièces jointes

  • ListeSousTotalparGroupedeLignes.xlsx
    34.6 KB · Affichages: 42
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Sous-total toutes les 12 lignes

Bonsoir VirtualDid et bienvenue,

Plus simple que ce que tu as fait et sans macro, personnellement, je ne vois guère ... sauf si le sous-total en question peut se faire dans une autre colonne (mais ça, je suppose que ce n'est pas prévu dans ton cahier des charges :))

On peut aussi raccourcir ta formule de quelques malheureux caractères, mais ça ne change rien à l'affaire :(
 

job75

XLDnaute Barbatruc
Re : Sous-total toutes les 12 lignes

Bonjour VirtualDid, bienvenue sur XLD,

Entrez en E2 cette formule :

Code:
=SI(MOD(LIGNES(D$2:D2);12);"";SOMME(D$2:D2)-SOMME(E$1:E1))
puis tirez-la vers le bas.

Vous pouvez supprimer la colonne A : elle ne sert à rien.

Edit : bonjour Modeste, pas rafraîchi.

A+
 
Dernière édition:

VirtualDid

XLDnaute Nouveau
Re : Sous-total toutes les 12 lignes

Fichtre, quelle rapidité ! Je ne m'attendais pas à ça... Merci à tous ! Et merci pour vos messages de bienvenue, vous avez sans doute remarqué, c'était mon premier message, grand moment d'émotion ! :D

@Modeste C'est vrai que le système utilisé me convenait bien à moi aussi mais je me doutais qu'une solution sans mon bricolage de chiffres devait bien exister...

@job75 Ca marche très bien ! Juste quelques minutes à prendre pour mieux comprendre... Et je me demande s'il n'y aurait pas moyen de simplifier encore, comme proposé par Victor21...

@Victor21 Merci pour ta contribution mais ça ne marche pas tout à fait, le résultat en ligne 13 concerne la somme des 12 lignes suivantes (!) ; je pense que ta formule devait être
Code:
=SI(MOD(LIGNE()-1;12)=0;SOMME(D2:D13);"")

Merci à tous !
 

Victor21

XLDnaute Barbatruc
Re : Sous-total toutes les 12 lignes

Re,

@Victor21 Merci pour ta contribution mais ça ne marche pas tout à fait, le résultat en ligne 13 concerne la somme des 12 lignes suivantes (!) ; je pense que ta formule devait être
Code:
=SI(MOD(LIGNE()-1;12)=0;SOMME(D2:D13);"")
Bien évidemment : j'ai malencontreusement recopié la formule présente en D25 ...

PS : L'utilisation de lignes() par Job75 au lieu de ligne() permet d'éviter la génération d'une erreur en cas d'insertion d'un nombre non multiple par 12 avant la ligne 2
 

hbenalia

XLDnaute Occasionnel
Re : Sous-total toutes les 12 lignes

Bonjour a tous,

En essai, saisir la formule suivante en E2 et recopier vers le bas:
Code:
=SI($D3="";SOMME(DECALER($D$1;12*ENT(LIGNE()/12)+1;;LIGNE($D3)));SI(MOD(LIGNES($1:1);12)=0;SOMME(DECALER($D$1;LIGNE()-12;;12));""))
On ne trouve pas mieux que d'utiliser une nouvelle colonne...

Cordialement
 
Dernière édition:

VirtualDid

XLDnaute Nouveau
Re : Sous-total toutes les 12 lignes

En essai, saisir la formule suivante en E2 et recopier vers le bas :
Code:
=SI($D3="";SOMME(DECALER($D$1;12*ENT(LIGNE()/12)+1;;LIGNE($D3)));SI(MOD(LIGNES($1:1);12)=0;SOMME(DECALER($D$1;LIGNE()-12;;12));""))

Euh... Ben... Oui... C'est sympa d'avoir participé mais à la base, je voulais une formule simple ! :eek:

Merci quand même ! ;)
 

klin89

XLDnaute Accro
Re : Sous-total toutes les 12 lignes

Bonsoir le forum,

En se basant sur la colonne A :
VB:
Sub Somme()
    Dim rng As Areas, rng1 As Range
    With Range("A2", Range("A" & Rows.Count).End(xlUp)).Offset(, 4)
        .Formula = "=if(a2<>a3,1,"""")"
        .Value = .Value
        On Error Resume Next
        Set rng = .SpecialCells(4).Areas
    End With
    On Error GoTo 0
    If rng Is Nothing Then Exit Sub
    For Each rng1 In rng
        With rng1
            .Cells(.Rows.Count + 1).Formula = _
            "=sum(" & .Offset(, -1).Resize(.Rows.Count + 1).Address & ")"
        End With
    Next
End Sub
klin89
 

VirtualDid

XLDnaute Nouveau
Sous-total toutes les 12 lignes : synthèse

Bonjour et merci pour vos réponses ! Ci-joint un fichier récapitulatif contenant la mise en application de nos propositions (sauf la macro-commande non testée), ça pourra servir à d'autres utilisateurs.
 

Pièces jointes

  • Liste Sous-Total par Groupe de Lignes.xlsx
    54.4 KB · Affichages: 30

Discussions similaires

Réponses
2
Affichages
186

Statistiques des forums

Discussions
312 594
Messages
2 090 088
Membres
104 371
dernier inscrit
Momo6767