Cumul évolutif

moustic54

XLDnaute Occasionnel
Bonsoir à tous,

Voici ce qui m'amène ne sachant pas si c'est réalisable.
J'ai un classeur composait d'onglets mensuels et un onglet total. Dans cet onglet total, je voudrais faire la somme de mes onglets mais une somme évolutive c'est-à-dire qu'en choississant un menu déroulant je puisse choisir les onglets à additionner.
Exemple cumul 2 mois serait l'addition de janvier et février, cumul 3 mois serait l'addition de janvier + février + mars et ainsi de suite.
Est-il possible de le réaliser ?

D'avance merci pour vos lumières.
 

Pièces jointes

  • Cumul évolutif.xls
    45.5 KB · Affichages: 80

Robert

XLDnaute Barbatruc
Repose en paix
Re : Cumul évolutif

Bonsoir Moustic, bonsoir le forum,

En pièce jointe, ton fichier avec la macro événementielle Change (dans l'onglet Total) ci-dessous :
Code:
Private test As Boolean 'déclare la variable test
 
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
Dim nb As Byte 'déclare la variable nb (NomBre)
Dim nos As String 'déclare la variable nos (Nom des OngletS)
Dim cel As Range 'déclare la variable cel (CELlule)
 
If Target.Address <> "$A$2" Then Exit Sub 'si la changement a lieu ailleurs qu'en A2, sort de la procédure
If test = True Then Exit Sub 'si test est vrai, sort de la procédure (évite de boucler sur cette procédure)
Application.ScreenUpdating = False 'masque les changements à l'écran
test = True 'définit la variable test
nb = CByte(Left(Target, 1)) 'définit de nombre de mois à cumuler
nos = "Janvier:" & Sheets(nb).Name & "!" 'définit le nom des onglets
For Each cel In Range("D2:D34,F2:F34,H2:H34,J2:K34") 'boucle sur toutes les cellules où le cumul doit être fait
    cel.FormulaR1C1 = "=SUM(" & nos & "RC)" 'ecrit la formule dans la cellule
Next cel 'prochaine cellule de la boucle
test = False 'réinitialise la variable test
Application.ScreenUpdating = True 'affiche les changements à l'écran
End Sub

[Édition]
Bonsoir Hippolite quelle synchro ! Faire ça par formule ça me rend fou... Chapeau !
 

Pièces jointes

  • Moustic_V01.xls
    71 KB · Affichages: 73
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Cumul évolutif

Bonjour Moustic, Hippolite, bonjour le forum,

Je te conseille vivement d'opter pour la solution d'Hippolite pour plusieurs raisons. La première est d'éviter les macros et donc le fameux message d'ouverture qui fait peur aux moineaux... La seconde est au niveau de l'adaptabilité des formules en cas de modification de la sructure et la rapidité d'éxécution.
La troisième est que si tu rajoutes tous les mois ma macro ne fonctionnera plus à partir d'octobre car nb sera églal à 1 et non à 10.
Toutefois si tu tiens à utiliser la macro, je pourrais te l'adapter. Tiens-moi au courant...
 

Hippolite

XLDnaute Accro
Re : Cumul évolutif

Bonjour à tous,
Désolé, mon post précédent comporte des erreurs de transcription ( j'avais OOo sous la main ), dès que j'aurai un peu de temps, je corrigerai.

En attendant il y a une solution simple:
Ajouter un onglet DEBUT et un onglet FIN
puis formule en K2 de la feuiile total :
Code:
=SOMME(DEBUT:FIN!K2)
Tirer la poignée dans les deux directions pour étendre la formule.
Les totaux concerneront toutes les feuiiles placées entre FIN et DEBUT.
A+
 

Hippolite

XLDnaute Accro
Re : Cumul évolutif

Re,
Et voilà la solution avec formules comme promis
Il suffit de tirer la poignée pour remplir le tableau.
A+

Edit : remplacé le fichier (L'ancien avait conservé une colonne de vérification de résultat)
 

Pièces jointes

  • Cumul évolutif+2.xls
    46.5 KB · Affichages: 66
Dernière édition:

moustic54

XLDnaute Occasionnel
Re : Cumul évolutif

Bonjour Moustic, Hippolite, bonjour le forum,

Je te conseille vivement d'opter pour la solution d'Hippolite pour plusieurs raisons. La première est d'éviter les macros et donc le fameux message d'ouverture qui fait peur aux moineaux... La seconde est au niveau de l'adaptabilité des formules en cas de modification de la sructure et la rapidité d'éxécution.
La troisième est que si tu rajoutes tous les mois ma macro ne fonctionnera plus à partir d'octobre car nb sera églal à 1 et non à 10.
Toutefois si tu tiens à utiliser la macro, je pourrais te l'adapter. Tiens-moi au courant...

Bonsoir Robert, Hippolite

En effet, Robert, j'allais revenir vers vous car j'ai opté pour ta solution et effectivement je me suis rendu compte que passait le mois de septembre, la macro n'était plus opérationnelle.
Comment modifier dans ces conditions, celle-ci pour qu'elle prenne en compte les 3 mois restant ?
 

moustic54

XLDnaute Occasionnel
Re : Cumul évolutif

Re,
Et voilà la solution avec formules comme promis
Il suffit de tirer la poignée pour remplir le tableau.
A+

Edit : remplacé le fichier (L'ancien avait conservé une colonne de vérification de résultat)

Hippolite,

Je viens juste regarder ton fichier. Je suis toujours très impressionné par les formules omplexes utilisés, et une fois encore, le fichier joint n'échappe pas à la règle. Mais en bougeant la liste des propositions de l'onglet Total, j'ai eu des # noms partout, y compris en B2.
Suis je obligé d'insérer une ligne en A1 vide sur tous les onglets composant mon classeur pour la prise en compte des formules ?
 

Victor21

XLDnaute Barbatruc
Re : Cumul évolutif

Bonsoir, moustic54, Hippolite, Robert.

J'espère ne pas froisser Robert en m'imiscant ...

moustic nous dit :
...passait le mois de septembre, la macro n'était plus opérationnelle.
Comment modifier dans ces conditions, celle-ci pour qu'elle prenne en compte les 3 mois restant ?
- en remplaçant :
Code:
nb = CByte(Left(Target, 1))
par :
Code:
nb = Target
- en modifiant la valeur des items de la zone de validation en A2 :
2;3;4...;12
- en choisissant un format personnilisé en A12
Code:
0" mois".
tu peux choisir entre 2 et 12 mois.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Cumul évolutif

Bonsoir le fil, bonsoir le forum,

La version 2 avec une prise en compte des 12 mois...

[Édition]
Bonsoir Victor on s'est croisé. Au contraire, pas du froissement mais du ravissement car on est pas toujours disponible ou attentif et c'est génial quand les collègues prennent la relève. Je te remercie car en plus ta propsition est plus simple que la mienne.
 

Pièces jointes

  • Moustic_V02.xls
    118.5 KB · Affichages: 49
Dernière édition:

moustic54

XLDnaute Occasionnel
Re : Cumul évolutif

Bonsoir Victor21

Merci beaucoup Robert d'avoir répondu aussi rapidement à ce problème des 3 mois restant tout comme Victor.
La solution préconisée par Victor est sans doute celle vers laquelle je dois à présent me tourner si je souhaite faire un cumul de 12 mois variable.
C'est à dire si je commence en Février 2009 (cumul 12 mois) cumuler mes onglets jusqu'à mars 2010. Si je choisis Mars 2009, je devrais cumuler jusqu'à Avril 2010 et ainsi de suite.
Je joins ton fichier modifé en V3, sans doute plus clair, que mes explications.
 

Pièces jointes

  • Moustic_V03.zip
    17.6 KB · Affichages: 21

Robert

XLDnaute Barbatruc
Repose en paix
Re : Cumul évolutif

Bonsoir le fil, bonsoir le forum,

Une version 4 avec une Userform. Tu choisis le debut du cumul dans la ComboBox1, et la fin dans la ComboBox2. L'Userfrom se ferme et les formules se mettent en place. Au moins comme ça tu auras tous les choix possibles...
 

Pièces jointes

  • Moustic_V04.xls
    221.5 KB · Affichages: 50

Discussions similaires

Réponses
17
Affichages
2 K

Statistiques des forums

Discussions
312 295
Messages
2 086 960
Membres
103 406
dernier inscrit
elliott.joliman@bforbank.