Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

(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:

job75

XLDnaute Barbatruc
Re,

La macro Incremente précédente supprime/insère/copie des colonnes entières.

Si l'on veut faire cela uniquement sous la ligne 8 :
Code:
Sub Incremente() 'Macro - 15/01/17
Dim w As Worksheet, dat$, maxi&, i%, f$, derlig&
For Each w In Worksheets
  dat = "1-" & w.Name
  If IsDate(dat) Then If CDate(dat) > maxi Then maxi = CDate(dat): i = w.Index
Next
If maxi = 0 Then Exit Sub
Application.Calculation = xlCalculationManual 'évite les recalculs des formules volatiles
Sheets(i).Copy After:=Sheets(i)
With Sheets(i + 1)
  .Name = Format(maxi + 31, "mm-yy")
  .Visible = xlSheetVisible 'si la feuille est masquée
  f = .[F9].Formula
  derlig = .Cells.SpecialCells(xlCellTypeLastCell).Row
  If Month(maxi + 31) < 12 Then
    .Range("F9:F" & derlig).Delete xlToLeft
  Else
    Application.ScreenUpdating = False
    .Range("F9:P" & derlig).Insert xlToRight 'insertion de 11 colonnes pour en faire 14
    .Range("T9:AG" & derlig).Copy .[F9] '14 colonnes
  End If
  .[F9] = f
End With
Application.Calculation = xlCalculationAutomatic 'recalcul de toutes les feuilles
End Sub
Il est préférable que la largeur des colonnes à partir de la colonne F soit toujours la même.

Fichier (2).

A+
 

Pièces jointes

  • Prev comme vous voulez(2).xlsm
    29.6 KB · Affichages: 39
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Sofia, le forum,

Pour les cumuls il faut ces formules dans la feuille '12-16' :

- en S10 =$E10+SOMME.SI($R9:R9;"EX*";$R10:R10)

- en AG10 =$E10+SOMME.SI($R9:AF9;"EX*";$R10:AF10)

A+
 

sofiacasandra2016

XLDnaute Nouveau
Bonjour Job,
Merci pour la formule concernant le cumul j'avais oublié ça
mais la formule du cumul par exemple pour S10=E10+somme(S10:Q10) et AD10=E10+somme(S10:Q10)+Somme(T10:AB10)
c'est à dire exclure les colonnes EX et cumul de la somme

Cordialement
 

job75

XLDnaute Barbatruc
Re,

Au post #33 je vous ai donné une solution que d'évidence vous ne comprenez pas.

Testez-la
en créant toutes les feuilles de 2017, peut-être comprendrez-vous ce qui se passe dans les cellules "Cumul"...

A+
 

job75

XLDnaute Barbatruc
Bonjour Sofia, le forum,

J'ai bien dit :
OK, ce que vous voulez est logique si pour chaque nouvelle feuille on met à jour la cellule E10.
Alors ne faut-il pas utiliser cette fonction VBA :
Code:
Function CumulStade()
Application.Volatile
Dim dat As Date, i%, w As Worksheet
dat = CDate("1-" & Application.Caller.Parent.Name)
If Month(dat) = 12 Then Exit Function 'RAZ
On Error Resume Next 's'il manque des feuilles
For i = 1 To Month(dat)
  Set w = Sheets(Format(DateAdd("m", -i, dat), "mm-yy")) 'mois précédent
  If Not w Is Nothing Then CumulStade = w.[E10] + w.[F10]: Exit Function
Next
End Function
La formule =CumulStade() est entrée en E10 par la macro Incremente.

Fichier (3).

Bonne journée.
 

Pièces jointes

  • Prev comme vous voulez(3).xlsm
    31.6 KB · Affichages: 31

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…