Option Explicit 'oblige à déclarer toutes les variables
Sub Macro1()
Dim dl As Integer 'déclare la variable dl(Dernière Ligne)
Dim x As Integer 'déclare la varialbe x
Dim tot As Double 'déclare la variable tot (TOTal)
Dim i As Integer 'déclare la variable i (Incrément)
Dim li As Integer 'déclare la variable li (Ligne)
Dim cel As Range 'déclare la variable cel (CELlule)
With Sheets("Export Worksheet") 'prend en compte l'onglet "Export Worksheet"
dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne dl
For x = 2 To dl 'boucle sur les ligne x à dl
tot = 0 'réinitialise la variable tot
i = 0 'réinitialise l'incrément i
li = Sheets("Feuil1").Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 'définit la ligne li
Sheets("Feuil1").Cells(li, 1).Value = .Cells(x, 1).Value 'récupère le "NUM"
Sheets("Feuil1").Cells(li, 2).Value = .Cells(x, 2).Value 'récupère le "CODE"
Sheets("Feuil1").Cells(li, 3).Value = .Cells(x, 4).Value 'récupère la "DATE_VALEUR"
.Range("A1").AutoFilter field:=1, Criteria1:=.Cells(x, 1).Value 'filtre automatique de l'onglet sur la colonne A, critère : cellule Ax
.Range("A1").AutoFilter field:=2, Criteria1:=.Cells(x, 2).Value 'filtre automatique de l'onglet sur la colonne B, critère : cellule Bx
Sheets("Feuil1").Cells(li, 4).Value = .Cells(Application.Rows.Count, 4).End(xlUp).Value 'récupère la dernière "DATE_VALEUR"
For Each cel In .Range("F2:F" & .Cells(Application.Rows.Count, 4).End(xlUp).Row).SpecialCells(xlCellTypeVisible) 'boucle sur toutes les cellules visibles de la colonne F
tot = tot + CDbl(cel.Value) 'définit le total tot
i = i + 1 'incrément i
Next cel 'prochaine cellule de la boucle
Sheets("Feuil1").Cells(li, 5).Value = tot 'récupère le total tot
.Range("A1").AutoFilter 'supprime le filtre automatique
x = x + (i - 1) 'incrémente x pour passer au prochain code
Next x 'prochain ligne de la boucle
End With 'fin de la prise en compte de l'onglet "Export Worksheet"
End Sub