totalisation avec mouvements

  • Initiateur de la discussion Initiateur de la discussion willy60000
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

W

willy60000

Guest
Bonjour à tous,

vous trouverez en pièce jointe mon problème...


ce que je voudrais faire est de centraliser les informations de 12 onglets (mois) en une seule (année) sachant (comme expliqué dans le fichier) que dans les mois il peut y avoir des mouvements de dossiers et donc forcément pour l'onglet annuel tout mouvement de dossiers est conservé... je ne sais pas si je m'explique bien mais c'est surement plus clair dans le fichier en exemple.


merci à tous pour votre aide

bonne journée
 

Pièces jointes

Re : totalisation avec mouvements

Bonjour willy60000,
je ne suis pas trop calé en macro, j'ai fait un truc vite fait par rapport à des codes que j'ai trouvé sur ce forum, pareil pour les formules.
c'est sans nul doute perfectible.

et désolé parce que j'ai un peu taillé ton fichier en pièce.😕

hop, hop é g rajouté une ptite modif, pour cleaner les n° et nom à l'exécution.
 

Pièces jointes

Dernière modification par un modérateur:
Re : totalisation avec mouvements

oui l'idée est d'additionner les chiffres de chaque dossier de tous les mois sur une feuille annuelle tout en tenant compte qu'il peut avoir un nouveau dossier et un dossier retiré

mais est-il possible de le faire en conservant la base du tableau comme le premier fichier ?


je retourne comprendre ta formule et la macro 🙂


en attendant si y'a d'autres propositions... j'suis preneur
 
Re : totalisation avec mouvements

j'ai beau éplucher la formule et la macro... j'y comprend pas grand chose
peut-on m'expliquer SVP

=SOMMEPROD(SOMME.SI(INDIRECT(TEXTE(DATE(2011;LIGNE(DECALER($A$1;;;NBVAL(A:A)-1));1);"mmmm")&"!b9:b12");$C10;
INDIRECT(TEXTE(DATE(2011;LIGNE(DECALER($A$1;;;NBVAL(A:A)-1));1);"mmmm")&"!c9:c12")))

Sub Centralisation()
For Each sh In ThisWorkbook.Worksheets
Sheets("Année").Range("A" & i + 1) = sh.Name
i = i + 1
Next sh
Sheets("Année").Select
Range("A1").Select
ActiveWorkbook.Names.Add Name:="Mois", RefersToR1C1:= _
"=OFFSET(Année!R1C1,,,COUNTA(Année!C1)-1)"

With Sheets("Année")
Set Mois = .Range("Mois")
End With
Onglet = Mois

Range("B9").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Clear

For Each Worksheet In ThisWorkbook.Worksheets
If Not IsError(Application.Match(Worksheet.Name, Onglet, 0)) Then
Worksheet.Activate
Range("a9:b" & Range("b65000").End(xlUp).Row).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Sheets("Année").Select
Sheets("Année").Range("B65536").End(xlUp).Offset(1).Select
ThisWorkbook.Sheets("Année").Paste
Application.CutCopyMode = False

End If
Next
Range("B9").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Range("$B$8:$C$21").RemoveDuplicates Columns:=Array(1, 2), Header _
:=xlYes
ActiveWorkbook.Worksheets("Année").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Année").Sort.SortFields.Add Key:=Range("B9:B21"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Année").Sort.SortFields.Add Key:=Range("C9:C21"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Année").Sort
.SetRange Range("B8:C21")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

End Sub

une nouvelle fois merci pour votre aide

Willy
 
Re : totalisation avec mouvements

Re willy60000,
ci-joint ton fichier d'origine.
Petite précision, il est impératif de garder la feuille "Année" en dernier, et de nommer très exactement les autres feuilles avec le nom des mois en toutes lettres, (par ex "Août", avec le ^)
La recherche dans la formule s'effectue sur le nom du client, il était peut être plus judicieux de le faire sur le N°...

Ah oui, autre subtilité, la plage dans la formule va de 9 à 300, s'il y a plus de 291 clients dans le mois, il faut modifier les formules dans visual basic, et étendre les plages :

=SUMPRODUCT(SUMIF(INDIRECT(TEXT(DATE(2011,ROW(OFFSET(R1C1,,,COUNTA(C1)-1)),1),""mmmm"")&""!b9:b300""),RC3," & Chr(10) & "INDIRECT(TEXT(DATE(2011,ROW(OFFSET(R1C1,,,COUNTA(C1)-1)),1),""mmmm"")&""!h9:h300"")))"

c'est du grand art 😕
 

Pièces jointes

Re : totalisation avec mouvements

Merci Gengiskhan

je regarderai ça ce soir

par contre le 2011dans la formule ça fait quoi ? je dis ça parce que si je suis en 2012 ou 2013 qu'est ce que ça fait ?

bonne journée
 
Re : totalisation avec mouvements

re Gengiskhan

oki donc meme si je suis en 2020 j'ai pas besoin de rectifier ce détail

merci un grand merci à toi

et au plaisir car j'ai d'autres projets dans le meme style pour autre chose... je reviendrai demander de l'aide si besoin 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
457
Compte Supprimé 979
C
K
  • Question Question
Réponses
8
Affichages
1 K
C
Réponses
2
Affichages
641
C
Retour