Code returns TRUE instead of value

  • Thread starter loren.pottinger
  • Start date
L

loren.pottinger

Essentially what I am trying to do is this:

I am trying to calculate depreciation.

I use the DateAdd function to add x number of months(Cell "F & Row that
is active") to the acquisition date(Cell "H & Row that is active" of
an asset.

If the sum of those dates is greater than the End of life (Cell "I &
Row that is active") of that asset then there is a payment for that
month and the value in Range("K" & Row) is place in the active cell
until the entire cell range from M7 to AC63 is filled.

If the sum of those dates is not greater the End of life (Cell "I & Row
that is active") of that asset then a value of zero is place in that
cell.

In either case the value in (Cell "F & Row that is active")
decremented by 1 for the next time the loop is run.

It runs, and the range is being filled, but there is not supposed to be
a payment for every cell in the range. There are no zeros for when the
condition is false.

Additionally, the entire Column "M" only has the word TRUE and not a
numerical value. My macro is as follows. Please help.

Sub Fill()

Dim TestDate As Date
Dim Col As Integer
Dim Row As Long

For Col = 13 To 29
For Row = 7 To 63

TestDate = DateAdd("m", Range("F" & Row), _
Range("H" & Row))

If TestDate < Range("I" & Row) Then

Range("K" & Row).Copy
Cells(Row, Col) = Range("K" & Row)
Range("F" & Row).Value = Range("F" & Row).Value - 1

Else
Cells(Row, Col) = ActiveCell.Value = 0
Range("F" & Row).Value = Range("F" & Row).Value - 1
End If

Next Row
Next Col
End Sub
 
E

Earl Kiosterud

Loren,

Cells(Row, Col) = ActiveCell.Value = 0

In this statement, ActiveCell.Value = 0 is a boolean expression, which
evaluates to TRUE or FALSE (it is or it ain't true). So the statement
becomes:

Cells(Row, Col) = TRUE
or
Cells(Row, Col) = FALSE

So the cell gets the boolean value TRUE or FALSE stuck into it.
 

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