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

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

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa