ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Rounding error??? (https://www.excelbanter.com/excel-programming/398374-rounding-error.html)

oggy

Rounding error???
 
Hi
I have have wrote the following code to get a value from a cell in one
spreadsheet and put it into another sheet.

The problem is the value is in money ie £25.68 but when the macro puts
the value in the other sheet the value is rounded up or dowm ie £26.00

The following code is a small element of a large macro, but show the
problem if processed.

Dim price As Long
price = ActiveCell.Value
Sheets("Sheet3").Select
Range("I21").Select
ActiveCell.Value = price
End Sub

Any ideas to resolve the problem would be gratfully recieved.

Thanks


Andrew Taylor

Rounding error???
 
You've defined price as being "Long". This is an integral
type, so it will round to an integer when you assign
ActiveCell.Value to it. Try

Dim price as Double

instead.


On 29 Sep, 12:58, oggy wrote:
Hi
I have have wrote the following code to get a value from a cell in one
spreadsheet and put it into another sheet.

The problem is the value is in money ie £25.68 but when the macro puts
the value in the other sheet the value is rounded up or dowm ie £26.00

The following code is a small element of a large macro, but show the
problem if processed.

Dim price As Long
price = ActiveCell.Value
Sheets("Sheet3").Select
Range("I21").Select
ActiveCell.Value = price
End Sub

Any ideas to resolve the problem would be gratfully recieved.

Thanks




Ron Rosenfeld

Rounding error???
 
On Sat, 29 Sep 2007 11:58:44 -0000, oggy wrote:

Hi
I have have wrote the following code to get a value from a cell in one
spreadsheet and put it into another sheet.

The problem is the value is in money ie £25.68 but when the macro puts
the value in the other sheet the value is rounded up or dowm ie £26.00

The following code is a small element of a large macro, but show the
problem if processed.

Dim price As Long
price = ActiveCell.Value
Sheets("Sheet3").Select
Range("I21").Select
ActiveCell.Value = price
End Sub

Any ideas to resolve the problem would be gratfully recieved.

Thanks


Dim price as Long

Long is a long integer value. If you don't want your result to round, Dim
price as Double.

Also, there is a lot of redundancy in your code. There is no need for all the
selects or the last ActiveCell

==========================
Dim price As Double
price = ActiveCell.Value
Sheets("Sheet3").Range("I21").Value = price
=============================

would do the same thing.

Or even:

======================================
Sheets("Sheet3").Range("I21").Value = ActiveCell.Value
==========================================


--ron


All times are GMT +1. The time now is 03:54 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com