Bonjour à tous,
en VBA
reste à régler la disposition à ta guise
Sub FitreDate()
Dim Lg&, Lg2&
Application.ScreenUpdating = False
Lg = Range("c" & Rows.Count).End(xlUp).Row
'--- efface ---
Range("k4:t" & Lg).ClearContents
'--- filtre dates ---
Range("i2") = "=e4>=$i$3" 'critère
Range("c3:e" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("i1:i2"), CopyToRange:=Range("q3:s3"), Unique:=False
Range("i2").ClearContents
Lg = Range("q" & Rows.Count).End(xlUp).Row
Range("t4:t" & Lg) = "=MID(r4,7,1)*1" 'identifiant
'--- résultats ---
Range("q2") = "Extraction date"
Range("q3:q" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("i1:i2"), CopyToRange:=Range("k3"), Unique:=True
'--- formules ---
Lg2 = Range("k" & Rows.Count).End(xlUp).Row
Range("L4:L" & Lg2) = "=SUMPRODUCT(($q$4:$q$" & Lg & "=$k4)*($t$4:$t$" & Lg & "=L$3))"
Range("m4:m" & Lg2) = "=SUMPRODUCT(($q$4:$q$" & Lg & "=$k4)*($t$4:$t$" & Lg & "=m$3))"
Range("n4:n" & Lg2) = "=SUMPRODUCT(($q$4:$q$" & Lg & "=$k4)*($t$4:$t$" & Lg & "=n$3))"
Range("o4:o" & Lg2) = "=SUM(L4:m4)*$L$2+n4*$n$2"
'--- en dur ---
Range("L4:o" & Lg2) = Range("L4:o" & Lg2).Value
Columns("q:t").Clear
End Sub
si tu veux comprendre le cheminement, supprime les 2 dernières lignes du code
'--- en dur ---
Range("L4:o" & Lg2) = Range("L4:o" & Lg2).Value
Columns("q:t").Clear
Amicalement
Claude