totalisation avec mouvements

willy60000

XLDnaute Nouveau
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

  • centralisation - Copie.xlsm
    46.4 KB · Affichages: 77
  • centralisation - Copie.xlsm
    46.4 KB · Affichages: 80
  • centralisation - Copie.xlsm
    46.4 KB · Affichages: 78

Gengiskhan

XLDnaute Junior
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.:confused:

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

Pièces jointes

  • Centralisation - Copie.xlsm
    42.7 KB · Affichages: 65
  • Centralisation - Copie.xlsm
    42.7 KB · Affichages: 73
  • Centralisation - Copie.xlsm
    42.7 KB · Affichages: 68
Dernière édition:

willy60000

XLDnaute Nouveau
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
 

willy60000

XLDnaute Nouveau
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
 

Gengiskhan

XLDnaute Junior
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 :confused:
 

Pièces jointes

  • Centralisation - Copie V2.xlsm
    47.6 KB · Affichages: 63

willy60000

XLDnaute Nouveau
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 :)
 

Discussions similaires

Réponses
1
Affichages
155
Compte Supprimé 979
C
Réponses
12
Affichages
400

Statistiques des forums

Discussions
312 497
Messages
2 088 994
Membres
104 000
dernier inscrit
dinelcia