Evaluate with SUMPRODUCT and variable

TG2812

Board Regular
Joined
Apr 15, 2015
Messages
180
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

Convert text numbers to real numbers
Select a column containing text numbers. Press Alt+D E F to quickly convert text to numbers. Faster than "Convert to Number"
What is the value of rw?
 
Upvote 0
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,214,907
Messages
6,122,181
Members
449,071
Latest member
cdnMech

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