Not sure why youwant this in VBA; you could just use the formulae directly.
Whatever
Option Explicit
Sub sTotal2021()
Dim lLR As Long
lLR = Sheet1.Range("A" & Sheet1.Rows.Count).End(xlUp).Row
' Subtotal year 2021
'=SUMPRODUCT( --(YEAR(Sheet1!$A$2:$A$984)=2021), --(Sheet1!$B$2:$B$984))
' fixed range
Sheet2.Range("A1").Value = _
Evaluate("=SUMPRODUCT( --(YEAR(Sheet1!$A$2:$A$984)=2021), --(Sheet1!$B$2:$B$984))")
' variable range
Sheet2.Range("A2").Value = _
Evaluate("=SUMPRODUCT( --(YEAR(Sheet1!$A$2:$A$" & lLR & ")=2021), --(Sheet1!$B$2:$B$" & lLR & "))")
' Subtotal between dates
'=SUMIFS(Sheet1!$B$2:$B$984, Sheet1!$A$2:$A$984,">="&DATE(2021,7,31), Sheet1!$A$2:$A$984,"<="&DATE(2021,12,31))
' fixed range
Sheet2.Range("A3").Value = _
Evaluate("=SUMIFS(Sheet1!$B$2:$B$984, Sheet1!$A$2:$A$984,"">=""&DATE(2021,7,31), Sheet1!$A$2:$A$984,""<=""&DATE(2021,12,31))")
' variable range
Sheet2.Range("A4").Value = _
Evaluate("=SUMIFS(Sheet1!$B$2:$B$" & lLR & ", Sheet1!$A$2:$A$" & lLR & ","">=""&DATE(2021,7,31), Sheet1!$A$2:$A$" & lLR & ",""<=""&DATE(2021,12,31))")
End Sub
Bookmarks