Type Mismatch when trying to sum columns

J

jeremiah

I am trying to sum the value in 4 numbers across the same row if the value of
another cell in that row is a specific string. I need to be able to loop
through the sheet because there are multiple rows that I will need to search
for my criteria. Using the below sub I get a typemismatch error - I assume
it is because some of my cell values may be blank - is there a way to
correct this

Sub SumHours()
Dim Firstrow As Long
Dim LastRow As Long
Dim lRow As Long
Dim CalcMode As Long
Dim ViewMode As Long
Dim rng As Range
Dim rngColour As Range
Dim blnColour As Boolean
Dim Range

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

With ActiveSheet

.Select

ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView

.DisplayPageBreaks = False

Firstrow = 2
LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row

For lRow = LastRow To Firstrow Step -1

If .Cells(lRow, "B").value <> "Year To Date" Then
Range("R") = WorksheetFunction.Sum(Range("D"), Range("F"),
Range("I"), Range("L"))
End If

Next lRow

End With

ActiveWindow.View = ViewMode
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End Sub
 
S

Sheeloo

I did not understand why you used
'Range("R") = WorksheetFunction.Sum(Range("D"), Range("F"), _
Range("I"), Range("L"))
What does 'Range("R") represent?

Try

Sub SumHours()
Dim Firstrow As Long
Dim LastRow As Long
Dim lRow As Long
Dim CalcMode As Long
Dim ViewMode As Long
Dim rng As Range
Dim rngColour As Range
Dim blnColour As Boolean
Dim Range

With Application
CalcMode = .Calculation
..Calculation = xlCalculationManual
..ScreenUpdating = False
End With

With ActiveSheet

..Select

ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView

..DisplayPageBreaks = False

Firstrow = 2
LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
For lRow = LastRow To Firstrow Step -1

If .Cells(lRow, "B").Value <> "Year To Date" Then
'Range("R") = WorksheetFunction.Sum(Range("D"), Range("F"), _
Range("I"), Range("L"))
..Cells(lRow, "R") = WorksheetFunction.Sum(.Cells(lRow, "B"), _
..Cells(lRow, "D"), .Cells(lRow, "F"), .Cells(lRow, "L"))
End If

Next lRow

End With

ActiveWindow.View = ViewMode
With Application
..ScreenUpdating = True
..Calculation = CalcMode
End With

End Sub
 
J

Jim Cone

If .Cells(lRow, "B").Value <> "Year To Date" Then
Cells(lRow, "R").Value = WorksheetFunction.Sum(Cells(lRow, "D").Value, _
Cells(lRow, "F").Value, Cells(lRow, "I").Value, Cells(lRow, "L").Value)
End If
--
Jim Cone
Portland, Oregon USA


"jeremiah"
wrote in message
I am trying to sum the value in 4 numbers across the same row if the value of
another cell in that row is a specific string. I need to be able to loop
through the sheet because there are multiple rows that I will need to search
for my criteria. Using the below sub I get a typemismatch error - I assume
it is because some of my cell values may be blank - is there a way to
correct this
-snip-
 
J

jeremiah

I not a vb expert by any means so I pick up alot of stuff from this forum and
others. I had read somewhere that you could use Range with
worksheetfunctions so gave it a try. None of my other attempts had worked
either so after a day of experimentation I decided to ask for help.

I have copied your sub below and do get some totals in the correct column
but on rows that shouldn't have any and they don't appear to be correct
totals. Will have to review to see what I am missing. Thanks for your help.
 
J

jeremiah

I figured it out...I had value <> "Year to date" it should have been = "Year
to Date" so I was pulling the wrong rows. Thanks again.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top