ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Test for Decimal (https://www.excelbanter.com/excel-programming/407176-test-decimal.html)

Ken Hudson

Test for Decimal
 
In a section of code I am using the MOD function to test for cases where a
given number is a multiple of 51.

If Range("A1") MOD 51 = 0 then
....more code

In cell A1 I have 203.52. The function is returning true because the 203.52
is rounded up to 204 as part of the MOD test. I don't want to apply code to
A1l and need to test for the decimal before I use the MOD function, I think.

If Range("A1") < "decimal" then
If Range("A1") MOD 51 = 0 then
...more code

Is this the logic I need and how do I test for the decimal?

Thanks.

--
Ken Hudson

Rick Rothstein \(MVP - VB\)[_1385_]

Test for Decimal
 
You can test your value like this...

If InStr(Range("A1") .Value, ".") = 0 Then
If Range("A1") MOD 51 = 0 then
...more code

Rick


"Ken Hudson" wrote in message
...
In a section of code I am using the MOD function to test for cases where a
given number is a multiple of 51.

If Range("A1") MOD 51 = 0 then
....more code

In cell A1 I have 203.52. The function is returning true because the
203.52
is rounded up to 204 as part of the MOD test. I don't want to apply code
to
A1l and need to test for the decimal before I use the MOD function, I
think.

If Range("A1") < "decimal" then
If Range("A1") MOD 51 = 0 then
...more code

Is this the logic I need and how do I test for the decimal?

Thanks.

--
Ken Hudson



Nigel[_2_]

Test for Decimal
 
I would take the integer value subtract from the original.

With Range("A1")
If .Value - Int(.Value) = 0 And .Value Mod 51 = 0 Then
'more code
End If
End With


--

Regards,
Nigel




"Ken Hudson" wrote in message
...
In a section of code I am using the MOD function to test for cases where a
given number is a multiple of 51.

If Range("A1") MOD 51 = 0 then
....more code

In cell A1 I have 203.52. The function is returning true because the
203.52
is rounded up to 204 as part of the MOD test. I don't want to apply code
to
A1l and need to test for the decimal before I use the MOD function, I
think.

If Range("A1") < "decimal" then
If Range("A1") MOD 51 = 0 then
...more code

Is this the logic I need and how do I test for the decimal?

Thanks.

--
Ken Hudson



joel

Test for Decimal
 
Here is two methods. either search for a decimal point in the number or use
Mod and test if the remainder equals 0.



If InStr(Range("J21").Text, ".") = 0 Then

End If

If (Range("J21") Mod 10) = 0 Then

End If


"Ken Hudson" wrote:

In a section of code I am using the MOD function to test for cases where a
given number is a multiple of 51.

If Range("A1") MOD 51 = 0 then
....more code

In cell A1 I have 203.52. The function is returning true because the 203.52
is rounded up to 204 as part of the MOD test. I don't want to apply code to
A1l and need to test for the decimal before I use the MOD function, I think.

If Range("A1") < "decimal" then
If Range("A1") MOD 51 = 0 then
...more code

Is this the logic I need and how do I test for the decimal?

Thanks.

--
Ken Hudson


Ken Hudson

Test for Decimal
 
Thanks, Nigel.
I believe the correct expression for your side of the pond is "that works a
treat."
--
Ken Hudson


"Nigel" wrote:

I would take the integer value subtract from the original.

With Range("A1")
If .Value - Int(.Value) = 0 And .Value Mod 51 = 0 Then
'more code
End If
End With


--

Regards,
Nigel




"Ken Hudson" wrote in message
...
In a section of code I am using the MOD function to test for cases where a
given number is a multiple of 51.

If Range("A1") MOD 51 = 0 then
....more code

In cell A1 I have 203.52. The function is returning true because the
203.52
is rounded up to 204 as part of the MOD test. I don't want to apply code
to
A1l and need to test for the decimal before I use the MOD function, I
think.

If Range("A1") < "decimal" then
If Range("A1") MOD 51 = 0 then
...more code

Is this the logic I need and how do I test for the decimal?

Thanks.

--
Ken Hudson



Rick Rothstein \(MVP - VB\)[_1386_]

Test for Decimal
 
While it is probably not the case with the OP, just thought I would point
out that your Int function call will fail if the contents of A1 is a
non-number. Also, you could save a couple of characters by testing the
..Value=Int(.Value) directly instead of subtracting them and seeing if that
difference was zero.

Rick


"Nigel" wrote in message
...
I would take the integer value subtract from the original.

With Range("A1")
If .Value - Int(.Value) = 0 And .Value Mod 51 = 0 Then
'more code
End If
End With


--

Regards,
Nigel




"Ken Hudson" wrote in message
...
In a section of code I am using the MOD function to test for cases where
a
given number is a multiple of 51.

If Range("A1") MOD 51 = 0 then
....more code

In cell A1 I have 203.52. The function is returning true because the
203.52
is rounded up to 204 as part of the MOD test. I don't want to apply code
to
A1l and need to test for the decimal before I use the MOD function, I
think.

If Range("A1") < "decimal" then
If Range("A1") MOD 51 = 0 then
...more code

Is this the logic I need and how do I test for the decimal?

Thanks.

--
Ken Hudson




Nigel[_2_]

Test for Decimal
 
Good call Rick, I was worried about floating point numbers but I think
taking the Integer is not an issue. Non-numeric values of course may not be
an issue but the OP could add this check.

--

Regards,
Nigel




"Rick Rothstein (MVP - VB)" wrote in
message ...
While it is probably not the case with the OP, just thought I would point
out that your Int function call will fail if the contents of A1 is a
non-number. Also, you could save a couple of characters by testing the
.Value=Int(.Value) directly instead of subtracting them and seeing if that
difference was zero.

Rick


"Nigel" wrote in message
...
I would take the integer value subtract from the original.

With Range("A1")
If .Value - Int(.Value) = 0 And .Value Mod 51 = 0 Then
'more code
End If
End With


--

Regards,
Nigel




"Ken Hudson" wrote in message
...
In a section of code I am using the MOD function to test for cases where
a
given number is a multiple of 51.

If Range("A1") MOD 51 = 0 then
....more code

In cell A1 I have 203.52. The function is returning true because the
203.52
is rounded up to 204 as part of the MOD test. I don't want to apply code
to
A1l and need to test for the decimal before I use the MOD function, I
think.

If Range("A1") < "decimal" then
If Range("A1") MOD 51 = 0 then
...more code

Is this the logic I need and how do I test for the decimal?

Thanks.

--
Ken Hudson






All times are GMT +1. The time now is 06:19 AM.

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