Option Explicit
'procédure événementielle évitant d'utiliser le bouton
Private Sub Worksheet_Activate()
'déclaration de la variable onglet
Dim w As Worksheet
'affichage figer
Application.ScreenUpdating = False
'effacemement des cellules b4 à b18
Range("B4:N18").ClearContents
'insertion de quatre colonnes
Columns("A:D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
'cellule a1 = N° compte
Range("a1").Value = "N° compte"
'==============================================================================================
'Adaptation d'un code de Banzai64, merci !
'recherche dans chaque onglet, excepté l'onglet "Cumul"
For Each w In Sheets
Select Case w.Name
Case "Cumul"
Case Else
'recopie des valeurs mentionnées en colonne b pour un collage en colonne a, les unes en dessous des autres
If w.Range("b2") <> "" Then w.Range("b2:b" & w.Range("b" & Rows.Count).End(xlUp).Row).Copy _
Destination:=Range("a" & Rows.Count).End(xlUp).Offset(1, 0)
End Select
Next
'==============================================================================================
'lancement d'un filtre élaboré sur les données de la colonne a, pour obtenir, en colonne d, une liste sans doublon
Range("A2").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("D1"), Unique:=True
Range("D1").Delete Shift:=xlUp
'copie de la liste sans doublon en f4
Range(Range("d1"), Range("d1").End(xlDown)).Copy Destination:=Sheets("Cumul").Range("f4")
'suppression de quatre colonnes
Columns("A:D").Delete Shift:=xlToLeft
'insertion des formules pour chaque cellule renseignée en colonne B
Range("c4:c" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Janvier!C[-1]:C,Cumul!RC[-1],Janvier!C)"
Range("d4:d" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Février!C[-2]:C[-1],Cumul!RC[-2],Février!C[-1])"
Range("e4:e" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Mars!C[-3]:C[-2],Cumul!RC[-3],Mars!C[-2])"
Range("f4:f" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Avril!C[-4]:C[-3],Cumul!RC[-4],Avril!C[-3])"
Range("g4:g" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Mai!C[-5]:C[-4],Cumul!RC[-5],Mai!C[-4])"
Range("h4:h" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Juin!C[-6]:C[-5],Cumul!RC[-6],Juin!C[-5])"
Range("i4:i" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Juillet!C[-7]:C[-6],Cumul!RC[-7],Juillet!C[-6])"
Range("j4:j" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Aout!C[-8]:C[-7],Cumul!RC[-8],Aout!C[-7])"
Range("k4:k" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Septembre!C[-9]:C[-8],Cumul!RC[-9],Septembre!C[-8])"
Range("l4:l" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Octobre!C[-10]:C[-9],Cumul!RC[-10],Octobre!C[-9])"
Range("m4:m" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Novembre!C[-11]:C[-10],Cumul!RC[-11],Novembre!C[-10])"
Range("n4:n" & Range("B65536").End(xlUp).Row).FormulaR1C1 = "=SUMIF(Décembre!C[-12]:C[-11],Cumul!RC[-12],Décembre!C[-11])"
'affichage libérer
Application.ScreenUpdating = True
End Sub