# Rounding in formula

leezac used Ask the Experts™
on
I need to add rounding to the two columns below.  I tried to do it by adding another row, but got an #value error.

G and H

Range("G" & srow).FormulaR1C1 = "=SUMIFS('Prior BDay'!C[-2],'Prior BDay'!C[-5],Summary!RC[-5],'Prior BDay'!C[-4],Summary!RC[-4])"
Range("G" & srow).FormulaR1C1 = "=ROUND(RC[-1],9)"

Range("H" & srow) = sp.ItemValue("M04")
Range("H" & srow).FormulaR1C1 = "=ROUND(RC[-1],9)"
Comment
Watch Question

Do more with

EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Commented:
Excel will automatically round the number displayed up if you change the number of decimal points displayed.   If that is not exactly what you need, then you can use the round function to specify exactly how much to round up, like to the nearest 5, 10, etc.

Here is a link that explains the all this in more detail:

http://office.microsoft.com/en-us/excel-help/round-a-number-HP003056144.aspx

Commented:
I changed the rounding as you suggesed in the cell,  it shows 0.000000274 but when I click on it is shows 0.000000273985

There is this formulat that looks at the cell and shows a valued based on the rounding.

Range("J" & srow).FormulaR1C1 = "=IF(RC[-1]=0,0,IF(RC[-3]=0.000000274,""Check"",IF(RC[-2]>0.000000274,""Valid"",""Check"")))"

I believe because of the 0.000000273985 still being there that the formula for J shows incorrect.  It should say "Valid" but says "Check"

Commented:
In reference to my last comment.  It may work.  Testing.

Commented:
If you are printing the spreadsheet, the "display rounding" will be good enough.  If you are wanting to truncate the trailing digits, then you will need to use the round formula.

Removing trailing digits may be important to you.  One place this is commonly needed is in money calculations where the trailing digits can make a column total higher than if they are not there.  Your numbers don't appear to be related to financial totals, but whatever your application, it may not tolerate the trailing digits.

I don't understand your need for using a range.  You could just create a new column, create a formula for the first line and then copy it to all the other lines below.

Here is a simple example.  This example uses only 1 decimal place.  You would need to change the value to 9.   H1 = round(G1,9) instead of H1 = round(G1,1)

Partner

Commented:
I see this question still hanging. Did you get your solution ? If not, could you pls post the workbook that have the data together with this code so we can look it up closer ?
gowflow

Commented:
No.  Is there vba code i can use to loop through Columns G and H to end of row and round to 9 digits ??

Commented:
Sub test()
Sheets("Sheet1").Range("G1:H").Select
Selection.NumberFormat = "0.000000000"
End Sub

Would something like this work - to just replace the values?
Partner

Commented:
No not this way. Please post sample workbook with the data and I will do it for you. Don't give me bits of codes it is not this way.

gowflow
Partner
Commented:
Not sure but is this what you want ??

``````Sub test()
Sheets("Sheet1").Range(Range("G1"), Range("H" & Rows.Count).End(xlUp)).Select
Selection.NumberFormat = "0.000000000"
End Sub
``````

gowflow

Do more with

Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.