Evaluate with SUMPRODUCT and variable

TG2812

Board Regular
Joined
Apr 15, 2015
Messages
192
Hi Everyone!

I'm attempting to calculate the below formula in VBA. However, it returns a type mistmatch error.
Any help would be greatly appreciated =)

dblMyVal = Evaluate("SUMPRODUCT(($H$2:$H$1000)*($A$2:$A$1000=A" & rw & ")*($B$2:$B$1000=B" & rw & ")*($D$2:$D$1000=D" & rw & ")*(MONTH($E$2:$E$1000)=MONTH(E" & rw & "))*(YEAR($E$2:$E$1000)=YEAR(E" & rw & ")))")
 

Excel Facts

How to calculate loan payments in Excel?
Use the PMT function: =PMT(5%/12,60,-25000) is for a $25,000 loan, 5% annual interest, 60 month loan.
Hi Fluff, thank you for your quick reply.

Value of rw is dynamic and is based on the last row of the worksheet.

rw = Sheets("Tracking").Range("A" & Rows.Count).End(xlUp).Row
 
Upvote 0
Be sure the dates in column E are real dates (numbers), not texts that look like dates.

M.
 
Upvote 0
I already tried and the ISNUMBER function returns True. Therefore it is correct.

I'm trying to replicate the below formula in VBA. It works as a formula but fails to execute when turned into a code..
The row in bold type represents the variable rw.

Any idea what is wrong?

=SUMPRODUCT(($H$2:$H$100)*($A$2:$A$100=A2)*($B$2:$B$100=B2)*($D$2:$D$100=D2)*(MONTH($E$2:$E$100)=MONTH(E2))*(YEAR($E$2:$E$100)=YEAR(E2)))
 
Upvote 0
With real dates in column E this worked for me

Code:
Sub aTest()
    Dim rw As Long, dblMyVal As Double
    
    rw = 2
    dblMyVal = Evaluate("SUMPRODUCT(($H$2:$H$1000)*($A$2:$A$1000=A" & rw & ")*($B$2:$B$1000=B" & rw & ")*" _
     & "($D$2:$D$1000=D" & rw & ")*(MONTH($E$2:$E$1000)=MONTH(E" & rw & "))*(YEAR($E$2:$E$1000)=YEAR(E" & rw & ")))")
    MsgBox dblMyVal
End Sub

M.
 
Upvote 0
Do any of your columns have errors?
 
Upvote 0
Thank you Marcelo Branco.
Unfortunately it still does not work. I suspect the activeworksheet to be the root cause...let me explain;

When the code is being executed, I'm showing the worksheet "Main" while the formula refers to the worksheet "Tracking".

Is this an issue ?
 
Upvote 0
Thank you Marcelo Branco.
Unfortunately it still does not work. I suspect the activeworksheet to be the root cause...let me explain;

When the code is being executed, I'm showing the worksheet "Main" while the formula refers to the worksheet "Tracking".

Is this an issue ?

See if this works

Code:
Sub aTest()
    Dim rw As Long, dblMyVal As Double
    
    rw = 2
    dblMyVal = [COLOR=#ff0000]Sheets("Tracking")[/COLOR].Evaluate("SUMPRODUCT(($H$2:$H$1000)*($A$2:$A$1000=A" & rw & ")*($B$2:$B$1000=B" & rw & ")*" _
     & "($D$2:$D$1000=D" & rw & ")*(MONTH($E$2:$E$1000)=MONTH(E" & rw & "))*(YEAR($E$2:$E$1000)=YEAR(E" & rw & ")))")
    MsgBox dblMyVal
End Sub

M.
 
Upvote 0

Forum statistics

Threads
1,223,910
Messages
6,175,318
Members
452,634
Latest member
cpostell

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top