(Résolu par Job75) Formules Sommes et Cumul Variables

sofiacasandra2016

XLDnaute Nouveau
Bonjour et bonne année à tous,
dans mon fichier ci-joint j'ai 3 onglet.
  • dans l'onglet (01-17) je cherche une formule variable dans Q10 comme ceci:
Q10 = la somme de tout les mois de l'année 2017 c'est à dire somme(F10: P10) + F10 de l'onglet (12-17) qui représente janvier de la même année
et cette même formule dans l'onglet (02-17) devient sur P10 :
P10= $E13$ + somme(F10:O10) + F10 (F10 de l'onglet précédent 01-17)
(même chose pour AB10 de l'onglet (01-17) et AA10 de l'onglet (02-17)
  • la deuxième formule concerne R10 et AC10 de l'onglet 01-17) :
R10 = $E10$ qui est toujours fixe + la somme de toutes les cellules qui sont avant la colonne R et dont les cellules de la ligne 10 est un mois
c'est a dire R10= $E10$ + somme(F10: P10)

AC10= $E10$ + somme(F10: P10) + somme(S10:AA10) (la formule exclut automatiquement Q10, R10, AB10 car Q9, R9, AB9 n'est pas un mois)

Merci d'avance pour assistance

Cordialement
Sofia
 

Pièces jointes

  • Prev.xlsm
    31.8 KB · Affichages: 50
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Pour installer des formules qui se réfèrent à d'autres feuilles, vous pouvez, pendant que vous entrez une formule, cliquer sur l'onglet d'une autre feuille puis sur sur une cellule: ça vous ajoutera dans le texte de la formule la référence vers celle ci.
 

Dranreb

XLDnaute Barbatruc
Vous pouvez peut être écrire de petites fonctions perso comme celle ci :
VB:
Function DFLC(ByVal DécF As Long, ByVal L As Long, ByVal C As Long)
Dim Wst As Worksheet
Set Wst = Application.Caller.Worksheet
Set Wst = Wst.Parent.Worksheets(Wst.Index + DécF)
DFLC = Wst.Cells(L, C).Value
End Function
Dans une cellule de '02-17' :
Code:
=DFLC(-1;10;6)
renvoie 11000000 parce que c'est la valeur de '01-17'!F10.
Paramètres: décalage position feuille par rapport à la feuille portant la formule, Ligne, Colonne.

Mais il vaudrait probablement mieux une procédure dans le module ThisWorkBook qui installerait les formules appropriées plus classiques lors de l'activation d'une feuille. Elle pourrait commencer à peu près comme ça :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim Wst As Worksheet, N As Long, PfxF As String
Set Wst = Sh
N = Wst.Index - 1: If N = 0 Then Exit Sub
PfxF = "'" & Me.Worksheets(N).Name & "'!"
 
Dernière édition:

vgendron

XLDnaute Barbatruc
Bonjour Sofia, Bernard

Q10 = la somme de tout les mois de l'année 2017 c'est à dire somme(F10: P10) + F10 de l'onglet (12-17) qui représente janvier de la même année
je sais faire ce que vous proposez
et bah ..
=SOMME(F10:p10)+'12-16'!F10

mais ce que je cherche que cela soit automatique
ca ne va pas avec
je cherche une formule et non pas une macro,

et cette même formule dans l'onglet (02-17) devient sur P10 :
P10= $E13$ + somme(F10:O10) + F10 (F10 de l'onglet précédent 01-17)
E13 ??

Bref... on ne comprend pas grand chose.. on veut bien t'aider. mais faut clarifier le besoin.. et ici je pense. expliquer comment sont construits tes onglets.
 

Dranreb

XLDnaute Barbatruc
C'est que vous enlevez le mois en F10 à chaque nouvelle feuille.
Alors on pourrait à la rigueur calculer la colonne de l'exercice de l'année en cours pour y changer la formule, mais il me semble que ça n'apporterait plus grand chose. Peut être que ce qu'il vous faudrait plutôt c'est une macro qui créerait une feuille supplémentaire à partir de la dernière ?
Mais ce que voulez en plus, c'est que cette formule calcule le cumul des cellules F10 de toutes les feuilles
précédentes (et des mois encore portés bien sûr) ?
Genre en '02-17'!P10 :
Code:
=SOMME('12-16:01-17'!$F10;DECALER($E10;0;1):O10)
ce qui pourrait s'écrire en VBA
VB:
Feuil4.[P10].FormulaR1C1 = "=SUM('12-16:01-17'!RC6,OFFSET(RC5,0,1):RC[-1])"
 
Dernière édition:

sofiacasandra2016

XLDnaute Nouveau
Re Dranreb,
Dans mon fichier d'origine j'ai deja une macro avec laquelle je fais l'incrémentation qui enleve à chaque fois le mois en cour colonne F

Pour ce qui concerne la formule de calcul elle doit reprendre juste F10 qui comprennent le mois de la même année (dans le cas de la colonne R les mois de l'année 2017)
 

Dranreb

XLDnaute Barbatruc
Ou encore comme ça pour tenir compte de l'année :
VB:
Dim M As Long, A As Long, F10Précéd As String, F10Décemb As String
M = Month(.[F9].Value): A = Right$(.[F9].Value, 2)
F10Précéd = "'" & Format(M - 2, "00") & "-" & Format(A, "00") & "'!RC6"
F10Décemb = "'12-" & Format(A - 1, "00") & "'!RC6"
.Cells(10, 19 - M).FormulaR1C1 = "=SUM(RC6:RC[-1]," & F10Précéd & "," & F10Décemb & ")"
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 083
Membres
103 115
dernier inscrit
fiachris26